ser*_*rge 3 qt pyqt qtreewidget
我需要在QTreeWidget中的项目激活时执行一些操作,但是下面的代码不会给我预期的结果:
class MyWidget(QTreeWidget):
def __init__(self, parent=None):
super(MyWidget, self).__init__(parent)
self.connect(self, SIGNAL("activated(QModelIndex)"), self.editCell)
def editCell(self, index):
print index
Run Code Online (Sandbox Code Playgroud)
要么
class MyWidget(QTreeWidget):
def __init__(self, parent=None):
super(MyWidget, self).__init__(parent)
self.connect(self, SIGNAL("itemActivated(QTreeWidgetItem, int)"),
self.editCell)
def editCell(self, item, column=0):
print item
Run Code Online (Sandbox Code Playgroud)
我做错了什么或如何以正确的方式激活项目激活?
谢谢,塞尔
如果你查看文档,你正在寻找的信号描述有一个星号.
QTreeWidget::itemActivated(QTreeWidgetItem *item, int column)
Run Code Online (Sandbox Code Playgroud)
这意味着您的连接调用应如下所示:
self.connect(self, SIGNAL("itemActivated(QTreeWidgetItem*,int)"), self.editCell)
Run Code Online (Sandbox Code Playgroud)
PyQt有一个很好的新API连接信号(我相信4.6版本).我推荐使用它.
self.itemActivated.connect(self.editCell)
Run Code Online (Sandbox Code Playgroud)