2010-03-06 112 views
1

我正在使用pyqt的Avogadro(化學軟件)插件。 我將某個方法連接到按鈕的單擊信號時遇到了一些問題。 我有我的課: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) 

爲什麼當我點擊按鈕on_run_click不叫?

+0

也許這是與阿伏伽德羅裝載一個問題, 「謹慎的作品」,我不得不做進一步的調查...... – pygabriel 2010-03-06 15:26:54

回答

1

除非他們最近有很大的改變,否則這似乎並不是PyQt中連接信號的方式。我更習慣:

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

那就是舊式的pyqt信號語法。 pygabriel使用了新的風格語法。 – 2010-03-25 02:40:01