为什么PyQt4中的函数槽connect()`未定义`?

时间:2017-11-22 04:41:31

标签: pyqt pyqt4

我只是尝试将按钮信号连接到button_clicked()方法。单击按钮时,应清除QTextEdit对象的内容。

class App:
    def window(self):
        app = QApplication(sys.argv)

        main_win = QWidget()
        main_win.show()

        self.disp_txt = QTextEdit(main_win)
        self.disp_txt.setText('hello world')
        self.disp_txt.show()

        button = QPushButton(main_win)
        button.show()
        QObject.connect(button,SIGNAL("clicked()"),button_clicked) <---exact spelling

        sys.exit(app.exec_())

    def button_clicked(self): <---exact spelling
        self.disp_txt.clear()

if __name__ == '__main__':
    a = App()
    a.window()

我从QObject.connect的论点中得到错误:NameError: name button_clicked is not defined。我是面向对象编程的新手,我甚至不确定我的班级结构是否合适。

1 个答案:

答案 0 :(得分:0)

对不起,不好意思。论证应该是self.button_clicked才能发挥作用。解决了我的小问题,虽然我仍在努力理解这些self语义。