2010-03-06 81 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