You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt5调用loadUiType加载UI文件报metaclass conflict错误如何解决

报错原因

PyQt5.uic.loadUiType()方法返回值为**(UI界面类, 基础窗口类)**组成的二元元组,你直接将整个元组作为父类传入类继承逻辑,不符合Python类继承的语法要求,因此触发元类冲突报错。同时代码还存在两处拼写错误。

修正后完整代码
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.uic import loadUiType

# 拆分loadUiType返回的两个类
Ui_Class, Base_Class = loadUiType('main.ui')


class MainApp(Base_Class, Ui_Class):
    def __init__(self, parent=None):
        super().__init__(parent)
        # 修正拼写:setupUI改为setupUi
        self.setupUi(self)


def main():
    app = QApplication(sys.argv)
    window = MainApp()
    window.show()
    # 修正拼写:exex_改为exec_
    app.exec_()


if __name__ == '__main__':
    main()
关键修改点
  • 拆分loadUiType返回的二元元组,正确继承对应的UI类和基础窗口类
  • 修正setupUI为PyQt内置的标准方法名setupUi
  • 修正QApplication启动方法的拼写错误exex_为exec_

内容的提问来源于stack exchange,提问作者Omar Attia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 18:54:03