一、概述

在Qt Designer中要使用图片资源有三种方法:通过图像文件指定、通过资源文件指定、通过theme主题方式指定,对应的设置界面在需要指定图像的属性栏如windowIcon中通过点击属性设置栏的倒三角按钮触发,如下图:



通过主题方式指定图像老猿还没有弄明白,暂时也没准备去研究。在这里介绍前2种方法。

二、指定图像文件作为资源

选择上图弹窗的“Choose File”就可以选定一个图片文件作为资源,图片文件包括图像格式(.bmp、.jpg、.gif等大多数图像格式文件)或者按钮图像格式(.ico)。如下图设定“播放.ico”作为应用窗口的图标:



指定后指定文件被作为Normal off 状态的图标,并自动计算得出其他状态的图标,当然也可以单独设定某种状态的图标为其他图像文件。

三、通过资源文件指定对应资源作为部件的资源

除了指定图像文件作为资源外,Qt Designer还支持将所有图像资源属性保存到资源文件中,再在部件属性设置时从资源文件中选择资源。

3.1 新建资源文件

通过部件的图像资源属性设置时选择从资源文件(Choose Resource)选取资源时,会弹出如下对话窗:



点击上图中的铅笔型Edit Resources按钮,进入资源编辑界面,如下图:



点击蓝色标记按钮新建一个资源文件如“测试资源”,命名保存到开发者指定的目录,保存后如图:



点击上图蓝色标记的Add Prefix按钮,新建对应的资源前缀或路径,这可以认为是应用需要用到的一个资源目录,具体名字根据自己规划的资源来命名,如要建一个图像资源目录img和一个ico资源目录,可以如下图这种命名:



点击上图蓝色标记的Add Files按钮,将不同的图形或按钮文件添加到对应的目录下,如图:





点击OK保存资源文件。这就完成了资源文件的编辑。

3.2 从资源文件引用资源设置部件的资源属性

在部件属性设置的界面,点击Choose Resource从资源文件选取资源,如图:



上图中选择了add.png图像文件作为windowIcon,点击ok保存,此时属性界面如图:

3.3 使用Pyrcc将资源文件转成py文件

保存UI界面,然后进入Pycharm界面,可见工程文件情况如下图:



资源文件保存到了工程中,然后选中资源文件,鼠标右键调出《第15.6节 PyQt5安装与配置》配置的Pyrcc进行资源转py文件处理。如图:



转换成功后工程文件多了如下图黄色标记的py文件。

3.4 将UI文件转换成Py文件

转换后会在UI生成的py文件中最后部分自动import资源转换的py文件。

这样在PyQt中使用资源文件设置图像属性的资源过程就完成了,如果直接将属性设置为图像文件则无需这样复杂,但可能加载慢一点、管理不好管理。


博客地址:https://blog.csdn.net/LaoYuanPython

老猿Python博客文章目录:https://blog.csdn.net/LaoYuanPython/article/details/98245036

PyQt(Python+Qt)学习随笔:Qt Designer中图像资源的使用及资源文件的管理的更多相关文章

  1. PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的按钮改变缺省文字的方法

    在Qt Designer中可以预先定义标准按钮,相关支持的标准按钮请见<PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的StandardButton ...

  2. PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox增加自定义按钮的方法

    在Qt Designer中可以预先定义标准按钮,相关支持的标准按钮请见<PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的StandardButton ...

  3. PyQt(Python+Qt)学习随笔:Designer中QDialogButtonBox确认clicked信号是哪个按钮发送的方法

    一.引言 QDialogButtonBox本身只提供4种信号,分别是accepted.rejected.clicked和helpRequested,在<PyQt(Python+Qt)学习随笔:D ...

  4. PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的StandardButtons标准按钮

    在Qt Designer中,可以在界面中使用QDialogButtonBox来配置一组按钮进行操作,Qt中为QDialogButtonBox定义了一组常用的标准按钮,可以在Designer中直接在St ...

  5. PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的clicked信号参数QAbstractButton *解决办法

    一.引言 QDialogButtonBox本身只提供4种信号,分别是accepted.rejected.clicked和helpRequested,在<PyQt(Python+Qt)学习随笔:D ...

  6. PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的ButtonRole详解

    一.引言 在Designer中创建的QDialogButtonBox对应的Button,都有指定的ButtonRole,而我们创建自定义的Button加入到QDialogButtonBox中去时,也需 ...

  7. PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的orientation和centerButtons属性

    orientation属性 orientation属性表示QDialogButtonBox的方向,缺省情况下,方向为水平方向(值为Qt.Horizontal),表示QDialogButtonBox中的 ...

  8. PyQt(Python+Qt)学习随笔:Designer中属性设置界面的属性字体使用粗黑体的含义

    老猿Python博文目录 老猿Python博客地址 使用了好几个月的Designer,今天才发现属性编辑界面的属性名有的为粗而黑,有的则不是,如图: 稍微测试了一下,发现是对属性值进行过调整,不再是缺 ...

  9. PyQt(Python+Qt)学习随笔:Designer中ItemViews类部件frameShape属性

    老猿Python博文目录 老猿Python博客地址 frameShape属性是从QFrame继承的属性,对应类型为QFrame.Shape,该属性表示框架样式中的框架形状,有如下取值: 老猿Pytho ...

  10. PyQt(Python+Qt)学习随笔:Designer中PushButton按钮default、atuoDefault属性

    引言 1.default.atuoDefault属性仅在父窗口为对话窗才生效,其他窗口类型设置这两个属性没有意义: 2.按钮的按压触发除了鼠标键之外,也可以使用回车键和空格键触发,这两个属性正是控制回 ...

随机推荐

  1. Python学习笔记1:基础

    1.编码 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串. 你也可以为源文件指定不同的字符编码.在 #! 行(首行)后插入至少一行特殊的注释行来定义 ...

  2. CORS跨域请求:前后端分离

    1. 请求过滤器: /** * OncePerRequestFilter保证在任何Servlet容器中都是一个请求只执行一次的过滤器. */ public class CorsFilter exten ...

  3. binary hacks读数笔记(dlopen、dlsym、dlerror、dlclose)

    1.dlopen是一个强大的库函数.该函数将打开一个动态库,并把它装入内存.该函数主要用来加载库中的符号,这些符号在编译的时候是不知道的.比如 Apache Web 服务器利用这个函数在运行过程中加载 ...

  4. 服务器虚拟化 - PVE

    服务器虚拟化 - Hypervisor 服务器虚拟化软件,也叫 Hypervisor--虚拟机管理程序,有时也称做 Virtual Machine Monitor(VMM),它可以在宿主机上创建并管理 ...

  5. ceph集群的安装和配置教程

    本篇主题: 1.怎样配置ssh免登陆访问 2.为什么搭建集群要关闭防火墙和selinux,如何关闭 3.从哪里获取ceph的安装包,怎样安装才是快速正确的 4.为什么要配置时间同步服务,怎样配置 5. ...

  6. echarts折线图,数据切换时(最近七天)绘图不合理现象

    echarts折线图,当进行数据切换时存在绘制不合理的问题,数据没错,但绘制不对. 两个0之间的连线应该是平滑直线,如图: 正确的显示: 解决: 在myCharts.setOption(option) ...

  7. git-新建git用户流程-1

    1.输入:https://git-scm.com/ 2.点击try git 4.注册git填写用户名和密码,邮箱,验证邮箱 5.选择免费的版本 6.创建仓库名称 创建成功见截图

  8. php批量转换时间戳

    //批量转换时间戳 array_map(array($this, 'myfunction'),'时间戳数组'); //如 array('time1'=>11,'time2'=>2222); ...

  9. webug第十五关:什么?图片上传不了?

    第十五关:什么?图片上传不了? 直接上传php一句话失败,将content type改为图片 成功

  10. 交换机通过Loopback Detection检测(设备所在网络环路)

    组网图形  Loopback Detection简介 见上篇文章(详情见),不再赘述. 组网需求 如图1所示,某小型企业采用二层组网,所属VLAN为100.由于人员流动性大,网络拓扑变动频繁,变动往往 ...