记录一下Python-Qt中按钮点击事件无响应解决方案
先创建一个qt界面,保存
用pyuic5工具将.ui转为.py文件,导入Pycharm
pyuic5 -o work.py C:Users86178Desktopwork.ui
当用以下代码时,发现点击按钮并不打印出想要的信息
from PyQt5 import QtWidgets from PyQt5.QtWidgets import QPushButton,QApplication, QHBoxLayout, QMainWindow, QPushButton, QWidget from PyQt5.QtGui import QIcon from PyQt5.QtWidgets import * from work import Ui_MainWindow #from window import Ui_MainWindow import sys class MainWindow(Ui_MainWindow,QtWidgets.QMainWindow): # 组合继承 def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.ui_start = Ui_MainWindow() self.ui_start.setupUi(self) self.setupUi(self) self.init_slots() def init_slots(self): self.ui_start.pushButton.clicked.connect(self.onSignIn) # 点击按钮开始 @staticmethod def onSignIn(): print(hello) if __name__ == "__main__": # 开始运行 app = QtWidgets.QApplication(sys.argv) window = MainWindow() window.show() print(hello) sys.exit(app.exec_())
试了很多次发现是多了一句:
self.setupUi(self)
把它注释掉就好了,查看了一下这个为什么会影响
下面是官方文档的写法,就没有那一句
setupUi函数能够对界面进行初始化,如果多了上面那一句,当前初始化的就不是我们需要的那个界面了,所以会出问题
下一篇:
如何写优质的JAVA代码