QTreeView selectionChanged触发方法

QTreeView selectionChanged trigger method

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

self.treeView_shot.selectionChanged.connect(self.update_RenderView)

我从使用基于小部件的方法中了解到的方式。我猜它不起作用,因为 selection / currentChanged 不是信号,而是文档中提到的 [virtual protected slot]。您如何将选择更改连接到我的 update_RenderView 方法并将所选项目传递给它?

您想检索视图的 selectionModel and then connect to its selectionChanged 信号。这样的事情应该有效:

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

您的插槽将收到两个 QItemSelection 参数:

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

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