PySide6使用QFileDialog上传文件时报错XPM is not supported如何解决
报错原因
QFileDialog.getOpenFileName()返回值为二元组(选中的文件路径, 已选择的文件过滤器),你直接将整个元组传入QPixmap()作为参数,QPixmap无法解析元组类型输入,会默认尝试将参数识别为XPM格式的图像数据,最终触发XPM is not supported报错。- 代码中起始路径写的
'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
相关产品推荐
相关产品推荐

