代码之家  ›  专栏  ›  技术社区  ›  liaK

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

  •  6
  • liaK  · 技术社区  · 15 年前

    我有一个QTableView,其中的数据加载了QStandardItemModel

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

    现在,我必须设置Tab Order属性,使其只能遍历值,而不能遍历参数。i、 e当控件处于0.456时,如果我按“Tab”键,它必须转到0.123,而不是X2(默认行为)。此外,column参数已禁用Edt触发器,我只能更改这些值。

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

    2 回复  |  直到 15 年前
        1
  •  2
  •   Pieter    15 年前

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

        2
  •  2
  •   armonge    15 年前

    实际上,编辑时不会发出KeyPress事件,而是需要重新实现closeEditor并检查提示。如果提示为QAbstractItemDelegate::EditNextItem,则更改selectionModel::currentIndex并使用QTableView::edit。

    另一个解决方案只在你不编辑的时候有效,但不管怎样,它给了我一个起点,所以我给了它赏金