在QTreeView中设置多个选择

kri*_*hyy 14 qt

我需要在这里有多个项目选择QTreeView.我有两个小部件,QTreeView左边和QGLWidget右边的另一个.如果我进行多项选择,我必须突出显示glwidget中的项目.反之亦然,如果在glwidget上进行了多项选择,我需要突出显示树视图中的项目.目前,我可以通过设置树视图的当前索引来更新单个项目.关于如何在glwidget上多次选择更新树视图中多个项目选择的任何想法?

Fra*_*eld 13

您可以使用树视图的项目选择模型(treeView-> selectionMode(),类型为QItemSelectionModel).它有一个信号selectionChanged(),您可以连接到它以接收树视图选择更改并将它们应用于GL视图.从GL视图接收选择事件时,您可以使用QItemSelectionModel::select()它们将它们传播到树视图.

要在树视图上启用多选,请致电setSelectionMode( MultiSelection ).


Til*_*gel 7

弗兰克更快,但我仍然发布我的(未经测试的)代码示例,用于向当前选择添加项目:

treeView->selectionModel()->select(
    treeView->model()->index(row, column, parent), 
    QItemSelectionModel::SelectCurrent);

还有其他选择模式,请参阅QItemSelectionModel参考.SelectCurrent是一个简写Select | Current,所以意味着通过选择给定的项目来更新当前选择.它并不意味着"选择当前选择"(替换先前的选择).