pyqt信号问题

时间:2010-03-06 14:37:11

标签: python pyqt4

我正在使用pyqt的Avogadro(化学软件)插件。 将方法连接到按钮的单击信号时遇到了一些问题。 我上课了:

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?

2 个答案:

答案 0 :(得分:1)

除非他们最近发生了很大变化,否则这似乎不是在PyQt中连接信号的方式。我比较习惯:

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

答案 1 :(得分:1)

问题是Avogadro python包装器不支持Tim的博客文章中描述的新信号语法: http://timvdm.blogspot.com/2008/12/avogadro-gets-new-python-wrappers.html