记录一下Python-Qt中按钮点击事件无响应解决方案

 先创建一个qt界面,保存

 用pyuic5工具将.ui转为.py文件,导入Pycharm

 pyuic5 -o work.py C:\Users\86178\Desktop\work.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函数能够对界面进行初始化,如果多了上面那一句,当前初始化的就不是我们需要的那个界面了,所以会出问题

猜你喜欢

转载自blog.csdn.net/weixin_51229250/article/details/122139145