我正在使用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?
答案 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