c++ qt qt4 qtreeview

c++ - Seleccionando una fila en QTreeView programáticamente



qt4 (2)

Si desea seleccionar una fila completa, debe utilizar lo siguiente:

selection->select(idx, QItemSelectionModel::Select | QItemSelectionModel::Rows);

Tenga en cuenta que a veces es posible que primero desee borrar la selección:

selection->select(idx, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);

Tengo un QTreeView con QFileSystemModel como modelo.

El QTreeView tiene SelectionBehavior establecido en SelectRows.

En mi código leí un conjunto de datos para seleccionar y luego los selecciono a través de:

idx = treeview->model()->index(search); selection->select(idx, QItemSelectionModel::Select);

Esto selecciona una celda, no la fila. .

Haber agregado una solución estúpida, pero preferiría arreglar esto de la manera correcta.

for (int col=0; col< treeview->model()->columnCount(); col++) { idx = treeview->model()->index(search, col); selection->select(idx, QItemSelectionModel::Select); }

¿O es esa ^^ la única manera de hacerlo?


También puede seleccionar una fila completa utilizando una QItemSelection:

selection->select ( QItemSelection ( treeview->model ()->index (search, 0), treeview->model ()->index (search, treeview->model ()->columnCount () - 1)), QItemSelectionModel::Select);

Además, si también desea la selección de filas para los clics del usuario, debe establecer el comportamiento de selección:

treeview->setSelectionBehavior (QAbstractItemView::SelectRows)