PyQt5导入pyuic生成的Ui_MainWindow类绑定按钮点击事件问题求助
PyQt5 按钮点击功能修复方案
现有代码存在的问题
- 自定义MainWindow类中注释了UI初始化代码,导致界面控件未被加载,无法访问
play_button - 控件属于
Ui_MainWindow的实例属性,需通过UI实例访问,不能直接用self.play_button调用 - 信号绑定的槽函数是类实例方法,需要加
self.前缀指向当前实例的方法 - 主程序入口直接实例化了原生
QMainWindow,自定义的MainWindow类逻辑完全未生效 sys模块导入位置不对,槽函数中调用sys.exit会找不到模块
注意:请保证主应用文件和
Main_Win.py存放在同一目录下,避免导入失败。
修正后的主应用代码
import sys from PyQt5 import QtWidgets as qtw from Main_Win import Ui_MainWindow class MainWindow(qtw.QMainWindow): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # 加载UI界面 self.ui = Ui_MainWindow() self.ui.setupUi(self) # 绑定按钮点击信号到槽函数 self.ui.play_button.clicked.connect(self.play_button_clicked) def play_button_clicked(self): print('woohoo this worked') sys.exit() if __name__ == "__main__": app = qtw.QApplication(sys.argv) # 实例化自定义的主窗口类 main_window = MainWindow() main_window.show() sys.exit(app.exec_())
运行效果
启动程序后点击界面上的Play按钮,控制台会输出woohoo this worked,随后程序正常退出。
内容的提问来源于stack exchange,提问作者Jo3Dirt
相关产品推荐
相关产品推荐

