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

PyQt6设置QMessageBox默认图标报AttributeError如何解决

报错原因

PyQt6调整了枚举类型的访问规则,PyQt5版本支持的类名.枚举值直接调用写法已被废弃,所有枚举值统一归属到类下对应的内部枚举类中,代码里写的QMessageBox.Information不存在对应属性,因此抛出AttributeError。

修复方案

二选一即可:

  • 保留原有实例化QMessageBox的代码逻辑,仅修正图标枚举的访问路径,其余代码无需改动:
def show_pop(self):
    msg = QMessageBox()
    msg.setIcon(QMessageBox.Icon.Information)
    msg.setWindowTitle('mb demo')
    msg.setText('You Pressed Button')
    msg.exec()
  • 直接调用QMessageBox的小写开头静态方法,无需手动实例化对象、逐个配置属性,静态方法会自动匹配对应类型的内置图标,代码更简洁:
def show_pop(self):
    # 参数顺序:父窗口对象、窗口标题、提示文本
    QMessageBox.information(self, 'mb demo', 'You Pressed Button')

其余内置图标调用规则一致:警告图标对应枚举QMessageBox.Icon.Warning、错误图标对应QMessageBox.Icon.Critical、询问图标对应QMessageBox.Icon.Question;如果用静态方法,分别对应warning()、critical()、question()方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 02:06:22