我需要QTreeView
中有多个项目选择。我有两个小部件,左边是QTreeView
,右边是另一个QGLWidget
。如果我进行多项选择,我必须突出显示glwidget中的项目。反之亦然,如果在glwidget上进行了多项选择,我需要突出显示树视图中的项目。目前,我可以通过设置树视图的当前索引来更新单个项目。关于如何在glwidget上多次选择更新树视图中多个项目选择的任何想法?
答案 0 :(得分:10)
您可以使用树视图的项目选择模型(treeView-> selectionMode(),类型为QItemSelectionModel)。它有一个信号selectionChanged(),您可以连接到它以接收树视图选择更改并将它们应用于GL视图。
从GL视图接收选择事件时,您可以使用QItemSelectionModel::select()
将它们传播到树视图。
要在树视图上启用多选,请致电setSelectionMode( MultiSelection )
。
答案 1 :(得分:6)
Frank速度更快,但我仍然发布了我的(未经测试的)代码示例,用于将项目添加到当前选择中:
treeView->selectionModel()->select( treeView->model()->index(row, column, parent), QItemSelectionModel::SelectCurrent);
还有其他选择模式,请参阅QItemSelectionModel
参考。 SelectCurrent
是Select | Current
的简写,因此意味着通过选择给定项来更新当前选择。它并不意味着“选择当前选择”(替换先前的选择)。