2010-03-09 41 views
6

我有在形成具有数据装载有QStandardItemModel一个QTableView中设置选项卡订单QTableView中使用Qt 4.4

Parameter Value 

    X1   0.456 
    X2   0.123 
.... and so on. 

现在我要设置Tab顺序财产,这样我可以遍历方式只通过值而不是参数。即当控制在0.456时,如果我按'Tab'键,它必须去0.123而不是X2(默认行为)。此外,列参数已禁用Edt触发器,我只能更改这些值。我知道QWidget :: setTabOrder(QWidget *,QWidget *),但因为我通过QStandardItemModel设置数据我如何实现QTableView中所需的Tab顺序?我正在使用Qt 4.4和Windows XP。另外我没有使用Qt设计器来设计UI元素。一切都只通过代码。

回答

2

子类QTableView并覆盖keyPressEvent。检查事件中的Tab键,否则调用基本实现。从视图的选择模型中获取当前选定的索引。将视图的edittrigger设置为CurrentChanged,或者将自己的QItemDelegate放在手动控制中。

2

实际上,当您正在编辑时,keyPressEvent并未发出,而是必须重新实现closeEditor并检查提示。如果提示是QAbstractItemDelegate :: EditNextItem,则更改selectionModel :: currentIndex并使用使用QTableView :: edit。

其他解决方案只能当你不修改,但无论如何,它给了我一个起点,所以我给它的赏金

+0

这也可能有所帮助:[自QTableView中编辑行为(HTTP ://www.hardcoded.net/articles/how-to-customize-qtableview-editing-behavior.htm) – 2012-05-27 19:49:35

相关问题