【问题标题】:How to end editing QTableWidgetItem如何结束编辑 QTableWidgetItem
【发布时间】:2014-09-25 15:25:12
【问题描述】:

当某些事件发生时,我需要完成编辑 QTableWidget。

MyWindow::onSomeEvent
{
  // Finish ui->table editing
  //...
}

我该怎么做?


该事件是一个旋转框编辑。当它发生时,行数变为等于它的值。

我试图发送回车按键事件。但是,当编辑最后一行中的项目并且新行数少于当前行数时,它不起作用。

QKeyEvent *ev = new  QKeyEvent(QEvent::KeyRelease,
                               Qt::Key_Return,
                               Qt::NoModifier);

QApplication::sendEvent(ui->table, ev);
ui->table->setRowCount(value);
QApplication::sendEvent(ui->table, ev);

【问题讨论】:

    标签: qt qtablewidget qtablewidgetitem


    【解决方案1】:

    试试这个:

    MyWindow::onSomeEvent()
    {
        QKeyEvent *ev = new  QKeyEvent(QEvent::KeyRelease,Qt::Key_Return,Qt::NoModifier);
        QApplication::sendEvent(ui->tableWidget,ev);
    }
    

    当事情发生时,你只需模仿Enter按下即可。

    【讨论】:

    • 我不想让表格不可编辑。我想在那一刻完成输入新值到编辑单元格,就像我按下回车键一样。
    • @Ufx 对不起,但我明白了,看看我的编辑,我测试它,工作正常。
    • @Ufx 它可以工作,但 setRowCount 在您的情况下会删除最后几行或最后一行/行,当前单元格失去焦点并且您输入按下 catch tableWidget,而不是单元格。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    相关资源
    最近更新 更多