QTreeView
有clicked
信号,但没有QTreeWidget
那样的itemChanged
。我必须使用 QTreeView
因为它是“基于模型的”。尽管如此,如果我的用户使用键盘选择一行,clicked
将不会被发送,并且我的回调将永远不会被调用。我应该注册什么信号?
最佳答案
QTreeView
类继承了QAbstractItemView
,它提供了对selection model的访问。 .
选择型号有several signals注册对当前项目所做的更改以及使用鼠标和键盘进行的选择。
编辑:
为了清楚起见,信号需要像这样连接:
selmodel = self.listing.selectionModel()
selmodel.selectionChanged.connect(self.handleSelectionChanged)
处理程序的签名应如下所示:
def handleSelectionChanged(self, selected, deselected):
indexes = selected.indexes()
if indexes:
print('row: %d' % indexes[0].row())
selected
和 deselected
是 QItemSelection 的实例.
关于python - 如何对 QtTreeView 上的键盘选择使用react?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13919652/