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

PySide6使用QFileDialog上传文件时报错XPM is not supported如何解决

报错原因
  1. QFileDialog.getOpenFileName() 返回值为二元组 (选中的文件路径, 已选择的文件过滤器),你直接将整个元组传入 QPixmap() 作为参数,QPixmap 无法解析元组类型输入,会默认尝试将参数识别为XPM格式的图像数据,最终触发XPM is not supported报错。
  2. 代码中起始路径写的 'c:\' 属于非法Python字符串,反斜杠作为转义字符需要额外转义,否则会引发后续字符串语法异常。
修复方案

修改open方法代码如下即可:

def open(self):
    # 解构元组,仅取第一个元素作为文件路径
    path, _ = QFileDialog.getOpenFileName(self, 'Open file', 
     r'c:\\',"Image files (*.jpg *.gif)")
    # 新增非空判断,兼容用户点击取消未选择文件的场景
    if path:
        self.ui.label.setPixmap(QPixmap(path))
        self.ui.label.setScaledContents(True)

核心修改点

  • 解构getOpenFileName返回的元组,仅将文件路径字符串传入QPixmap
  • 修复了起始路径的转义错误
  • 新增空路径判断,避免边界场景报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 03:36:04