2010-04-14 21 views
3

je dois faire certaines actions lorsque l'option en QTreeWidget active, mais après doestn't de code me donne le résultat attendu:QTreeWidget activer des signaux d'article

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 

ou

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 

Que dois-je faire le mal ou comment activer l'activation de l'objet de la bonne façon?

Merci à l'avance, Serge

Répondre

7

Si vous regardez la documentation la description du signal que vous recherchez a un astérisque.

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

Cela signifie que votre appel à la connexion devrait ressembler à ceci:

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

PyQt a une belle new API to connect signals (depuis la version 4.6 je crois). Je recommande de l'utiliser.

self.itemActivated.connect(self.editCell) 
+0

Merci beaucoup, ça a aidé – serge