0

中央ウィジェットとしてaQMainWindowを含む がありQTableViewます。

QTableViewモデル ( から派生したもの) を設定して、これを設定しQAbstractTableModelます。

の選択動作QTableViewは に設定されてい QAbstractItemView::SelectRowsます。つまり、セルをクリックすると、行全体が選択されます (強調表示されます)。

QTableViewプログラムで行をフォーカス/ハイライトできるようにしたいと思います。言い換えれば、ユーザーがクリックせずに行にフォーカス/ハイライトしたいと思います。どうすればこれを行うことができますか?セル内のクリックを「偽造」しますか?

4

1 に答える 1

2

これは、メソッドを呼び出して取得できるテーブル ビューの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);

選択フラグの説明はこちらにあります

于 2016-02-02T13:13:59.663 に答える