一、概述

在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. day86:luffy:前端发送请求生成订单&结算页面优惠劵的实现

    目录 1.前端发送请求生成订单 1.前端点击支付按钮生成订单 2.结算成功之后应该清除结算页面的数据 3.后端计算结算页面总原价格和总的真实价格并存到数据库订单表中 2.优惠劵 1.准备工作 2.前端 ...

  2. 解决Python参考文档乱码问题

    问题如下: 解决方案: 打开IE浏览器,随便输入一个网址,在页面空白处点击右键->编码->自动选择 再次重新开启python3 帮助文档即可

  3. ashx将datatable返回json数据

    1.直接使用JsonConvert.SerializeObject().将datatable放入  输出字符串 下面是测试:用webform+ashx作为接口. public class GetJso ...

  4. ngx ------ngx_cache_manager_process_cycle

    static void ngx_cache_manager_process_cycle(ngx_cycle_t *cycle, void *data) {----------------------- ...

  5. if __name__ == "__main__"的疑惑

    Python中if __name__ == "__main__"详细解释: 想必很多初次接触python都会见到这样一个语句,if __name__ == "__main ...

  6. Win7 安装 Docker 踩的那些坑

    公司电脑是 WIN7 x64 旗舰版 SP1,安装 Docker 时踩了好多雷,分享出来给大家排排雷. 首先,Docker Desktop Installer 的 Windows 版只支持 Win10 ...

  7. MongoDB动态建表方案(官方原生驱动)

    MongoDB动态建表方案(官方原生驱动) 需求前提:表名动态,表结构静态,库固定 1.导入相关依赖 <dependency> <groupId>org.mongodb< ...

  8. Springboot 框架整理,建议做开发的都看看,整理的比较详细!

    什么是 Spring Boot? SpringBoot是Spring项目中的一个子工程,与我们所熟知的Spring-framework 同属于spring的产品,是用来简化 spring 初始搭建和开 ...

  9. 对于AQS的理解

    1.JUC包中的 CountDownLatch.CyclicBarrier.ReentrantLock和Semaphore都是基于AQS(AbstractQuenedSynchronizer)实现的 ...

  10. 2019-2020 ICPC Asia Hong Kong Regional Contest J. Junior Mathematician 题解(数位dp)

    题目链接 题目大意 要你在[l,r]中找到有多少个数满足\(x\equiv f(x)(mod\; m)\) \(f(x)=\sum_{i=1}^{k-1} \sum_{j=i+1}^{k}d(x,i) ...