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)