PyQt5之打包资源文件


一、使用Qt Designer 加载资源文件

  1. 在Qt Designer 中设计界面时是不能直接加入图片和图标等资源的,而是需要在PyQt开发目录下编写.qrc文件(可以用文本编辑器打开扩展名为.qrc的资源文件)。
    新建一个资源文件apprcc.qrc,可以使用Eric创建这个文件,操作如图,它会自动生成下面的代码。它的内容如下:
<!DOCTYPE RCC>
<RCC version="1.0">
<qresource>
</qresource>
</RCC>

  1. 打开Qt Designer ,新建一个类型为Widget 的简单窗体,该窗体文件名为fir1.ui。然后打开资源浏览器,进入资源编辑界面,打开资源文件,这里打开上面创建的apprcc.qrc。接下来选中apprcc.qrc,设置图片资源的前缀为pic,最后添加图片资源。完成后,可查看apprcc.qrc 文件的内容如下:
<RCC><qresource prefix="pic"><file>图片.jpg</file></qresource>
</RCC>


二、在窗体中使用资源文件

  1. 继续使用Qt Designer 操作 fir1.ui 文件。在Qt Designer窗口的左侧选择Label控件拖入到窗体中并且选中它,在右侧的属性编辑器中找到pixmap属性,单击后面的按钮,把它的值改为资源文件中的一张图片,如下图:

  1. 保存之后将fir.ui文件转换为.py文件,内容如下:
# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'D:\Python--PyQt5--Eric6\fir1.ui'
#
# Created by: PyQt5 UI code generator 5.13.2
#
# WARNING! All changes made in this file will be lost!from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_Form(object):def setupUi(self, Form):Form.setObjectName("Form")Form.resize(693, 608)self.label = QtWidgets.QLabel(Form)self.label.setGeometry(QtCore.QRect(190, 180, 211, 161))self.label.setText("")self.label.setPixmap(QtGui.QPixmap(":/pic/图片.jpg"))self.label.setObjectName("label")self.retranslateUi(Form)QtCore.QMetaObject.connectSlotsByName(Form)def retranslateUi(self, Form):_translate = QtCore.QCoreApplication.translateForm.setWindowTitle(_translate("Form", "Form"))
import apprcc_rcif __name__ == "__main__":import sysapp = QtWidgets.QApplication(sys.argv)Form = QtWidgets.QWidget()ui = Ui_Form()ui.setupUi(Form)Form.show()sys.exit(app.exec_())

运行该代码,会抛出以下异常信息:

Traceback (most recent call last):
File “D:\Python–PyQt5–Eric6\Ui_fir1.py”, line 29, in
import apprcc_rc
ModuleNotFoundError: No module named ‘apprcc_rc’

说明在脚本中使用以下代码导入的模块异常,所以我们还需要将.qrc文件转换为.py文件。

  1. 使用PyQt5提供的pyrcc5命令将apprcc.qrc文件转换为apprcc_rc.py文件,打开cmd,输入命令:pyrcc5 apprcc.qrc -o apprcc_rc.py。完成之后就可以正常运行了,效果如下图:


注:最好是将资源文件、.ui文件和.qrc文件保存到同一路径下面


PyQt5之打包资源文件相关推荐

  1. Pyinstaller打包exe(包括打包资源文件 绝不出错版)

    Pyinstaller打包exe(包括打包资源文件 绝不出错版) 依赖包及其对应的版本号 PyQt5 5.10.1 PyQt5-Qt5 5.15.2 PyQt5-sip 12.9.0 pyinstal ...

  2. Android 工程打包资源文件-OBB文件设置

    Android 工程打包资源文件-OBB文件设置 设备/引擎:Mac(11.6)/cocos 开发工具:Android studio(4.1.2) 开发语言:java 开发需求:对工程的资源文件进行打 ...

  3. Android 打包流程之aapt打包资源文件

    上一篇:Android打包流程之资源管理 Android应用最终是以apk的形式放在手机上安装并运行的,而负责将资源文件和代码进行打包的工具就叫appt,全称Android Asset Packagi ...

  4. 《PyInstaller打包实战指南》第八节 打包资源文件

    第八节 打包资源文件 1.添加图片 2.添加可执行文件 3.添加压缩文件 4.添加其他文件(txt, excel, json, html...) 5.添加二进制文件 在第三节的第一小节中,笔者打包了以 ...

  5. Pyinstaller 生成 exe 及打包资源文件

    其他 Pyinstaller 打包技巧见<Python程序打包指南> Pyinstaller 不仅可以打包 .py 文件为 exe ,还可以将依赖的其他资源文件(如图片.音频等媒体文件)也 ...

  6. 《Nuitka打包实战指南》第六节 打包资源文件

    第六节 打包资源文件 目录 6.1 资源打包命令详解 6.2 资源打包实战练习 如果程序代码用到了一些资源文件 (如图片.音视频.json文件),我们就需要将这些资源文件一同打包,否则程序运行会报找不 ...

  7. pyqt5从子目录加载qrc文件_实战PyQt5: 045-添加资源文件

    添加资源文件 在使用PyQt进行图形界面开发的时候不免要用到一些外部资源,比如图片,qss配置文件等.在前面代码中,遇到这类问题,我们使用绝对路径的方式来解决,这种方式,本身有其不方便之处(比如,调整 ...

  8. Python:pyinstaller如何将一个项目的.py和相关资源文件打包生成.exe文件

    前言 写这篇博文真属于意外,因为小编不是以学术为目的的,而仅仅是以讨女朋友喜欢为目的,所以文中略有狗粮.撇开这些,相信大家找到为了找到一个可行方案已经寻寻觅觅良久,本文或许便是你的"真命天子 ...

  9. 使用pipenv建立虚拟环境解决python打包exe文件过大的问题(附打包带图标,多个py文件打包exe)

    我们编写的程序可以发给其他小伙伴使用,但是其他小伙伴不一定安装有python.这时候就需要用到打包啦.打包可以将程序打包成exe文件.然后小伙伴在windows平台里就可以运行(无需python).直 ...

  10. PyQt5实战之二维码生成器(四):界面的国际化与管理打包资源

    前言 经过上一章,我们实现了二维码的生成及样式修改,并将其显示在界面中.本章将实现界面的国际化,并说明如何管理打包资源. 一.界面的国际化 在之前的代码中可以发现,有些文本用 self.tr() 括了 ...

最新文章

  1. XPS reader for Silverlight
  2. 在linux下修改oracle字符集
  3. MariaDB/MySql 服务消失无法启动
  4. python线程与进程
  5. Hyper-V的管理与使用之一:添加功能
  6. 解答网友提问:如何构建动态表达式实现高级查询服务
  7. 2018华工计算机应用基础作业,计算机应用基础平时作业2019
  8. 教程:在 VM Depot 中查找 Azure 可用的虚拟机镜像
  9. 《HTML5与CSS3实战指南》——2.3 HTML5常见问题
  10. Windows下安装NetCat
  11. 小D课堂 - 零基础入门SpringBoot2.X到实战_第8节 数据库操作之整合Mybaties和事务讲解_36、SpringBoot整合mybatis之事务处理实战...
  12. JavaScript经纬度和地图坐标相互转换
  13. Azure部署的应用程序访问页面页面时加载字体文件(.woff.woff2)出现 404 错误问题
  14. 【presto】函数大全
  15. ubuntu 禁用触摸板
  16. Jupyter 安装与应用
  17. (十二)苏世民:我的经验和教训:苏世民带领黑石走向巅峰的十大管理原则
  18. ISE关联仿真库遇到secureip出错怎么办?(附答案)
  19. jdk groovy版本_Groovy JDK(GDK):日期和日历
  20. python -- 最长公共子串

热门文章

  1. 软工最后一节课的感悟-我们和国外的差距
  2. 2021牛年二月|各行业节日热点营销方案
  3. 【差分约束】区间选点 II
  4. 尚硅谷阳哥SpringCloud第二季学习笔记(三)
  5. 7-4 最大公约数和最小公倍数 (20分) 本题要求两个给定正整数的最大公约数和最小公倍数。
  6. 卸载部分软件后大部分软件不能联网问题
  7. MySQL 事务 学习
  8. 新年第一问,请解释一下extend和super泛型中list操作的区别?
  9. 阿里巴巴“耕地宝”大战各种宝
  10. LOFTER8260915018E720181660A45D31…