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

运行PyQt6生成的UI代码报argument 1 has unexpected type 'EnumMeta'如何解决

问题原因

  • 核心为你使用的pyuic6版本(6.1.0)与系统中安装的PyQt6运行版本不匹配,旧版本pyuic6生成的代码中枚举值调用方式不符合高版本PyQt6的语法规范。
  • 具体出错代码行为:self.actionUpload.setMenuRole(QtGui.QAction.AboutQtRole)。PyQt6中QAction.MenuRole是独立的枚举类,不能直接通过QAction.枚举值的方式调用,必须指定枚举类层级后调用对应枚举值。

可行解决方案

方案1:临时修改生成的UI代码

将出错行替换为以下内容即可直接运行:

self.actionUpload.setMenuRole(QtGui.QAction.MenuRole.AboutQtRole)

注意:该方案的修改内容会在下次执行pyuic6重新生成UI代码时被覆盖,仅适合临时测试使用。

方案2:升级pyuic6到与PyQt6匹配的版本(永久修复)

首先在终端执行命令查看当前PyQt6版本:

pip3 show PyQt6

再执行以下命令升级PyQt6和对应的UI生成工具到匹配版本:

# 先安装Debian系系统所需的Qt6基础依赖
sudo apt install qt6-base-dev qt6-tools-dev-tools
# 升级PyQt6和对应工具包到最新版本
pip3 install --upgrade PyQt6 pyqt6-tools

升级完成后重新使用pyuic6生成UI代码,工具会自动生成符合当前PyQt6语法规范的代码,不会再触发该报错。

内容的提问来源于stack exchange,提问作者Derek Neilson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:24:04