the*_*inX 18 c++ qt qt4 qtreeview
我有一个QTreeView和QFileSystemModel作为模型.
QTreeView将SelectionBehavior设置为SelectRows.
在我的代码中,我读了一个数据集来选择,然后通过以下方式选择它们:
idx = treeview->model()->index(search);
selection->select(idx, QItemSelectionModel::Select);
Run Code Online (Sandbox Code Playgroud)
这将选择一个单元格,而不是行..
添加了一个愚蠢的解决方法,但宁愿以正确的方式解决这个问题.
for (int col=0; col< treeview->model()->columnCount(); col++)
{
idx = treeview->model()->index(search, col);
selection->select(idx, QItemSelectionModel::Select);
}
Run Code Online (Sandbox Code Playgroud)
或者是^^唯一的方法吗?
小智 24
如果要选择整行,则应使用以下内容:
selection->select(idx, QItemSelectionModel::Select | QItemSelectionModel::Rows);
Run Code Online (Sandbox Code Playgroud)
请注意,您有时可能首先要清除选择:
selection->select(idx, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
Run Code Online (Sandbox Code Playgroud)
小智 11
您还可以使用QItemSelection选择整行:
selection->select (
QItemSelection (
treeview->model ()->index (search, 0),
treeview->model ()->index (search, treeview->model ()->columnCount () - 1)),
QItemSelectionModel::Select);
Run Code Online (Sandbox Code Playgroud)
此外,如果您还想为用户点击选择行,则需要设置选择行为:
treeview->setSelectionBehavior (QAbstractItemView::SelectRows)
Run Code Online (Sandbox Code Playgroud)