如何将QTableWidgetItem置于编辑模式?

时间:2016-09-05 14:12:51

标签: c++ qt qtablewidget qtablewidgetitem

我正在使用基于QTableWidget的现有UI组件,并将其中两个放在QTabWidget页面中。我想允许用户在第一个选项卡中将数据输入到表格中,然后当他们按下按钮移动到第二个选项卡并让第一个单元格处于编辑模式时。

我正在使用QTableWidget的editItem方法来编辑给定的QTableWidgetItem。问题是出现了阻止编辑的事情(或者它可能永远不会从头开始)。

如果我第二次调用editItem然后失败,但如果我单击该单元格,它将进入编辑模式,单元格高亮显示,光标闪烁。我只是想知道是否有办法以编程方式执行此操作我可能错过了?

一个选项是模拟Tab键按下然后切换选项卡,但我无法做到这一点。我可以模拟选项卡,但如果我尝试添加移位修改器,那么它会生成一个普通的选项卡。

这是我的标签代码:

QApplication::postEvent(tableWidget, new QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::NoModifier));

这是我的换档标签代码不起作用:

QApplication::postEvent(tableWidget, new QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::ShiftModifier));

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

看起来shift-tab实际上被报告为Qt :: Key_Backtab,而不是Qt :: Key_Tab,其中的shift修饰符与我预期的一样......

我认为这将为我们完成工作,但欢迎任何更好的解决方案。