3

当 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

我在做什么错或如何以正确的方式进行项目激活?

在此先感谢, 塞尔吉

4

1 回答 1

7

如果您查看文档,您正在寻找的信号的描述有一个星号。

QTreeWidget::itemActivated(QTreeWidgetItem *item, int column)

这意味着您的连接调用应如下所示:

self.connect(self, SIGNAL("itemActivated(QTreeWidgetItem*,int)"), self.editCell)

PyQt 有一个很好的新 API 来连接信号(我相信从 4.6 版开始)。我建议使用它。

self.itemActivated.connect(self.editCell)
于 2010-04-14T19:17:56.863 回答