在Qt 4.4中设置QTableView的Tab顺序

时间:2010-03-09 06:41:13

标签: c++ qt4

我有一个QTableView,其数据加载了形式为

的QStandardItemModel
Parameter    Value

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

现在我必须设置Tab Order属性,使我只能遍历值而不是参数。即当控件在0.456上时,如果我按'Tab'键,它必须转到0.123而不是X2(默认行为)。此外,列参数禁用了Edt触发器,我只能更改值。

我知道QWidget :: setTabOrder(QWidget *,QWidget *),但由于我通过QStandardItemModel设置数据,如何在QTableView中实现所需的Tab顺序?我使用的是Qt 4.4和Windows XP。另外,我没有使用Qt设计器来设计UI元素。一切都只通过代码。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

另一种解决方案只适用于你没有编辑的情况,但无论如何它给了我一个起点,所以我给了它赏金