我有一个QMainWindow
,其中包含QTableView
作为其中心部件。
我通过设置模型(来自QTableView
)来填充此QAbstractTableModel
。
QTableView
的选择行为设置为QAbstractItemView::SelectRows
。这意味着如果我单击一个单元格,则会选择整个行(并突出显示)。
我希望能够以编程方式在QTableView
中聚焦/突出显示一行。换句话说,我想在没有用户点击的情况下聚焦/突出显示一行。如何做到这一点,我是假的'单击一个单元格?
答案 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。