将焦点设置在QTableView中

时间:2016-02-02 11:31:24

标签: qt qtableview qabstracttablemodel

我有一个QMainWindow,其中包含QTableView作为其中心部件。

我通过设置模型(来自QTableView)来填充此QAbstractTableModel

QTableView的选择行为设置为QAbstractItemView::SelectRows。这意味着如果我单击一个单元格,则会选择整个行(并突出显示)。

我希望能够以编程方式在QTableView中聚焦/突出显示一行。换句话说,我想在没有用户点击的情况下聚焦/突出显示一行。如何做到这一点,我是假的'单击一个单元格?

1 个答案:

答案 0 :(得分:0)

您可以使用表格视图的QItemSelectionModel来实现此目的,您可以通过调用QTableView::selectionModel()方法获取该视图。 QItemSelectionModel具有公共槽QItemSelection::select(QModelIndex, QItemSelectionModel::SelectionFlags),它在调用时改变当前选择。因此,当您想要突出显示特定行时,您可以执行此操作:

QItemSelectionModel::SelectionFlags flags = QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows;
QModelIndex index = m_tableView->model()->index(rowIndex, 0);
m_tableView->selectionModel()->select(index, flags);

您可以找到选择标记说明here