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):
selected
是QModelIndex
的集合;这些是活动期间选择的项目。
deselected
是QModelIndex
的集合;这些是活动期间取消选择的项目。
或者,您始终可以查询 QTreeView 的 selectedIndexes
属性 以获得 所有当前选择的 项目的列表。
我开始使用 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):
selected
是QModelIndex
的集合;这些是活动期间选择的项目。deselected
是QModelIndex
的集合;这些是活动期间取消选择的项目。
或者,您始终可以查询 QTreeView 的 selectedIndexes
属性 以获得 所有当前选择的 项目的列表。