【问题标题】:pyqt signal problempyqt信号问题
【发布时间】:2010-03-08 06:43:36
【问题描述】:

我正在开发一个使用 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 没有被调用?

【问题讨论】:

  • 可能是 Avogadro 加载的问题,它“很少工作”,我必须做进一步的调查......

标签: python pyqt4


【解决方案1】:

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

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

【讨论】:

  • 那是老式的 pyqt 信号语法。 pygabriel 使用了新的样式语法。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2016-06-21
    • 2011-08-08
    • 2016-11-13
    • 2012-07-13
    相关资源
    最近更新 更多