在QTreeView中设置多个选择

时间:2011-02-22 08:28:42

标签: qt

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

2 个答案:

答案 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参考。 SelectCurrentSelect | Current的简写,因此意味着通过选择给定项来更新当前选择。它并不意味着“选择当前选择”(替换先前的选择)。