2010-04-14 130 views
3

我需要做一些动作时,在QTreeWidget项目启动,但下面的代码doestn't给了我预期的结果: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 

我在做什么错或如何以正确的方式禁止物品激活?

由于提前, 塞尔

回答

7

如果你看一下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) 
+0

非常感谢,它帮助 – serge 2010-04-14 20:54:52