UI应用程序未加载PyQt5

Posted

技术标签:

【中文标题】UI应用程序未加载PyQt5【英文标题】:UI Application not loading PyQt5 【发布时间】:2017-08-04 15:17:52 【问题描述】:

我不知道为什么这个应用程序不加载我的用户界面。我已经写了我在互联网上找到的确切代码,但没有得到任何结果。

from PyQt5.uic import loadUi
from PyQt5.QtWidgets import QApplication, QMainWindow
import sys


class Receipt(QMainWindow):

    def __init__(self):
        super().__init__()
        self.ui = None
        self.load_ui()
        self.load_signals()

    def load_ui(self):
        self.ui = loadUi('window.ui')
        self.show()

    def load_signals(self):
        pass

app = QApplication(sys.argv)
receipt = Receipt()
sys.exit(app.exec_()) 

【问题讨论】:

【参考方案1】:

根据documentation:

PyQt5.uic.loadUi(uifile[, baseinstance=None[, package=”[, resource_suffix='_rc']]])

加载 Qt Designer .ui 文件并返回用户实例 界面。

参数:

uifile – 包含 .ui 文件。

baseinstance – Qt 基类的可选实例。 如果指定,则在其中创建用户界面。否则一个新的 自动创建基类的实例。

package – 可选包,它是任何相关导入的基础包 自定义小部件。

您必须将 self 实例作为参数传递,如下所示

self.ui = loadUi('window.ui', self)

【讨论】:

【参考方案2】:

尝试将QMainWindow 作为参数传递给Receipt 类,如下所示:

app = QApplication(sys.argv)
receipt = Receipt(QMainWindow)
sys.exit(app.exec_()) 

这应该将主窗口设置为您的类并在您执行时显示应用程序。

【讨论】:

以上是关于UI应用程序未加载PyQt5的主要内容,如果未能解决你的问题,请参考以下文章

PyQt5 QMYSQL 驱动程序未加载

在pyqt5中单击登录按钮时获取小部件未定义错误

PyQt5:从设计文件加载菜单[重复]

将数据加载到 qtableWidget PyQt5

UI 未加载,代码仍在运行

程序集特定设置未在运行时加载