QTreeView selectionChanged触发方法

时间:2018-11-26 15:06:18

标签: python-2.7 qt pyqt5 pyside2

我开始使用QTreeView窗口小部件来表示我的数据库实体。我想对树视图中新实体选择的事件做出反应,因此我可以更新其他小部件的状态,使其与树视图的当前选择相对应。 文档显示了两个选项。 http://doc.qt.io/qt-5/qabstractitemview.html#selectionChangedhttp://doc.qt.io/qt-5/qabstractitemview.html#currentChanged ,但我无法将传统

连接到他们
self.treeView_shot.selectionChanged.connect(self.update_RenderView)
通过使用基于窗口小部件的方法,我知道的方法。我猜想它不起作用,因为selection / currentChanged不是信号,而是文档中称为[virtual protected slot]的东西。您如何将选择更改连接到我的update_RenderView方法并将所选项目传递给它?

1 个答案:

答案 0 :(得分:2)

您要检索视图的selectionModel,然后连接到 selectionChanged信号。这样的事情应该起作用:

self.treeView_shot.selectionModel().selectionChanged.connect(self.YOURSLOT)

您的广告位将收到两个QItemSelection参数:

def YOURSLOT (selected, deselected):
  • selectedQModelIndex es的集合;这些是活动期间选定的项目。
  • deselectedQModelIndex es的集合;这些是活动期间取消选择的项目。

或者,您始终可以查询QTreeView的selectedIndexes属性,以获取所有当前选中的项目的列表。