我需要在 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
或
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
我做错了什么或如何以正确的方式激活元素?
提前致谢, 哔叽
最佳答案
如果您查看 documentation您要查找的信号的描述带有星号。
QTreeWidget::itemActivated(QTreeWidgetItem *item, int column)
这意味着您的连接调用应如下所示:
self.connect(self, SIGNAL("itemActivated(QTreeWidgetItem*,int)"), self.editCell)
PyQt 有一个很好的 new API to connect signals (我相信从 4.6 版开始)。我推荐使用它。
self.itemActivated.connect(self.editCell)
关于QTreeWidget 激活项目信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2639141/