pyuic转换Qt Designer UI得到的Python文件运行无显示如何解决
问题原因
pyuic工具自动生成的Python文件仅包含UI界面的结构定义,没有包含PyQt程序运行必需的初始化、窗口渲染、事件循环逻辑,因此直接运行时程序不会触发任何界面渲染操作,执行完代码就直接退出。
修复方案
推荐方案:单独编写入口文件(不修改自动生成的UI代码)
该方案不会改动pyuic生成的文件,后续修改UI重新生成代码时不会覆盖你的业务逻辑,是官方推荐的用法。
操作步骤:
- 假设你将pyuic生成的文件命名为
ui_mainwindow.py,新建一个main.py作为程序的启动入口 - 在
main.py中写入如下代码:
import sys from PyQt5.QtWidgets import QApplication, QMainWindow # 导入自动生成的UI类 from ui_mainwindow import Ui_MainWindow if __name__ == '__main__': # 初始化Qt应用实例 app = QApplication(sys.argv) # 实例化主窗口容器 main_window = QMainWindow() # 实例化UI类并将界面绑定到主窗口容器 ui = Ui_MainWindow() ui.setupUi(main_window) # 显示主窗口 main_window.show() # 启动Qt事件循环,保持程序运行等待用户交互 sys.exit(app.exec_())
- 运行
main.py即可正常弹出界面。
临时测试方案:在自动生成的UI文件末尾添加入口代码
该方案仅适合临时测试使用,下次使用pyuic重新生成UI文件时,你添加的代码会被直接覆盖。
操作步骤:
- 在你给出的UI代码的最末尾添加如下代码:
if __name__ == '__main__': import sys app = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_())
- 直接运行该UI文件即可弹出界面。
额外注意事项
你代码中引用的背景图路径"UI edited/Slide2EDITED.png"是相对路径,运行程序时需要保证当前工作目录和该路径的层级匹配,否则会出现背景图加载失败无法显示的问题。
内容的提问来源于stack exchange,提问作者Pouya
相关产品推荐
相关产品推荐

