在Qt 4.4中为QTableView设置选项卡顺序

6

我是一个QTableView,使用QStandardItemModel加载数据,形式如下:

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 designer设计UI元素。一切都是通过代码完成的。
2个回答

2

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


2

实际上,当您正在编辑时,并不会发出keyPressEvent。相反,您需要重新实现closeEditor并检查提示。如果提示是QAbstractItemDelegate :: EditNextItem,则更改selectionModel :: currentIndex并使用QTableView :: edit。

另一种解决方案仅在您未进行编辑时才起作用,但无论如何,它都为我提供了一个起点,因此我将其奖励。


这可能也会有所帮助:自定义 QTableView 编辑行为 - Nolan Amy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接