QTreeView
有clicked
信号,但itemChanged
不像QTreeWidget
。我必须使用QTreeView
,因为它是“基于模型的”。尽管如此,如果我的用户使用键盘选择一行,clicked
则不会发送,并且永远不会调用我的回调。我应该注册什么信号?
问问题
1270 次
1 回答
5
QTreeView
类继承QAbstractItemView
,它提供对选择模型的访问。
选择模型有几个信号,用于注册对当前项目所做的更改以及鼠标和键盘的选择。
编辑:
为了清楚起见,信号需要像这样连接:
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())
和是QItemSelectionselected
的实例。deselected
于 2012-12-17T19:00:16.967 回答