编程语言
首页 > 编程语言> > c – 以编程方式在QTreeView中选择一行

c – 以编程方式在QTreeView中选择一行

作者:互联网

我有一个QTreeView和QFileSystemModel作为模型.

QTreeView将SelectionBehavior设置为SelectRows.

在我的代码中,我读了一个数据集来选择,然后通过以下方式选择它们:

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

这将选择一个单元格,而不是行. .

添加了一个愚蠢的解决方法,但宁愿以正确的方式解决这个问题.

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

或者是^^唯一的方法吗?

解决方法:

您还可以使用QItemSelection选择整行:

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

此外,如果您还想为用户点击选择行,则需要设置选择行为:

treeview->setSelectionBehavior (QAbstractItemView::SelectRows)

标签:qtreeview,c,qt,qt4
来源: https://codeday.me/bug/20190930/1836916.html