pyuic5转换.ui为.py文件时末尾出现无关gif资源导入行如何解决
问题原因
pyuic5转码生成的py文件末尾带import Penta_gif_02_rc不是程序bug,是工具的固定逻辑:只要.ui文件里关联了qrc资源包,转码时就会自动在代码末尾追加对应资源模块的导入,_rc后缀是工具自动拼接的。
你本地的Penta_gif_02.gif就是这个被误关联的资源包里的素材,之前操作时不小心把这个qrc资源包挂到了当前ui文件上,只是可视化编辑界面的入口藏得深,没找到移除的位置而已。
解决方法
两种方法选一种操作即可:
方法1:直接改ui配置文件(最快,不用找面板入口)
- 关掉Qt Designer,随便找个纯文本编辑器(Mac自带的文本编辑、VS Code都行)打开出问题的
SView.ui,ui本身就是XML格式的纯文本,不需要特殊工具就能编辑。 - 全局搜索关键词
Penta_gif_02,能找到一行<include location="Penta_gif_02.qrc"/>的配置项,直接整行删掉。 - 如果搜索结果里还有控件把这个gif设为图标、背景的相关属性配置,连带对应的配置节点一起删掉,之后保存文件。
- 重新执行pyuic5转码,多余的导入语句就会消失。
方法2:在Qt Designer内移除资源关联
- 打开目标ui文件,点顶部菜单栏「视图」-「资源浏览器」,把隐藏的资源管理面板调出来。
- 面板里能看到被关联的
Penta_gif_02.qrc项,点击移除按钮删掉关联关系,保存ui文件。 - 重新执行pyuic5转码即可恢复正常。
补充说明:这行导入不是直接导入gif文件。PyQt的资源逻辑是把图片、图标等素材打包进qrc文件,再用pyrcc5工具把qrc转成
[资源名]_rc.py格式的Python模块,pyuic5检测到ui绑定了qrc就会自动加这行导入,用来加载资源包里的素材。
内容的提问来源于stack exchange,提问作者Sojiro Fukuda
相关产品推荐
相关产品推荐

