PySide6中QPushButton无法显示SVG图标问题排查与解决
问题情况
- 用QT Designer制作UI时,给QPushButton设置了
leaf-scan-gray.svg图标,编辑器预览里按钮能正常显示该图标 - 执行命令
pyside6-uic ui_scantab.ui > ui_scantab.py将.ui文件转为.py文件后,运行应用时按钮上的SVG图标完全不显示 - 换成PNG格式的图标,运行后能正常显示
生成的按钮相关代码
self.pushButton = QPushButton(Form) self.pushButton.setObjectName(u"pushButton") self.pushButton.setEnabled(False) self.pushButton.setMinimumSize(QSize(225, 60)) self.pushButton.setMaximumSize(QSize(150, 16777215)) self.pushButton.setLayoutDirection(Qt.LeftToRight) icon = QIcon() icon.addFile(u"assets/leaf-scan-gray.svg", QSize(), QIcon.Normal, QIcon.Off) self.pushButton.setIcon(icon) self.pushButton.setIconSize(QSize(32, 32))
排查细节
- SVG文件存放在项目目录下的
assets子文件夹中 - 尝试清空用于设置样式的style.qss文件,问题依然存在,排除样式文件影响
- 前一天该SVG图标还能在按钮上正常显示
解决方式
通过重装Python和PyCharm解决了此问题。
内容的提问来源于stack exchange,提问作者Avery Gallant
相关产品推荐
相关产品推荐

