2010-03-06 7 views
1

Je travaille sur un plugin pour Avogadro (logiciel de chimie) qui utilise pyqt. J'ai un problème avec la connexion d'une méthode au signal cliqué d'un bouton. J'ai ma classe:Problème de signal pyqt

class Controller(object): 
    def __init__(self): 
     self.ui = MyDialog() # self.ui.run is a QPushButton 
     self.ui.run.clicked.connect(self.on_run_click) 
    def on_run_click(self): 
     1/0 

class MyDialog(QDialog,Ui_Dialog): # ui designer compiled 
     def __init__(self): 
     QDialog.__init__(self) 
     self.setupUi(self) 

Pourquoi quand je clique sur le bouton de la on_run_click n'est pas appelé?

+0

Peut-être un problème avec le chargement de Avogadro, il "travaille avec parcimonie", je dois faire d'autres recherches ... – pygabriel

Répondre

1

À moins qu'ils aient considérablement changé quelque chose récemment, cela ne semble pas être le moyen de connecter des signaux dans PyQt. Je suis plus habitué à:

self.connect(self.ui.run, QtCore.SIGNAL("clicked()"), 
      self, QtCore.SLOT("on_run_click()")) 
+0

C'est la syntaxe de l'ancien style de signal pyqt. pygabriel a utilisé la nouvelle syntaxe de style. –