QT5中动态更改图标的方法

本文详细介绍了在Qt中如何通过动态方式更改图标,包括添加资源文件、修改图标路径及使用特定函数实现动态加载的过程。作者分享了从失败到成功的经验,强调了正确设置图标路径的重要性。
部署运行你感兴趣的模型镜像

简述

在做工程中遇到一个问题,需要根据程序的运行动态的改变显示的图标。在网上找了几篇博客,都失败了,后来自己看UI文件,发现了失败原因,就是设置图标的时候,输入的问文件路径有问题。我摸索出的方法如下。

Step1:添加资源文件

在这里插入图片描述
在工程文件处,右击鼠标》添加新文件》QT resource

在这里插入图片描述
修改前缀名,具体用处在Step3中可以看到。

这个时候一个资源文件就建立了,此时你可以在pro文件中看到你的resource文件(qrc)
在这里插入图片描述

Step2:在资源文件下添加icon、图片等

Step3:动态修改图标

在这里插入图片描述
点击添加》文件,选择你的icon、图片等文件,就可以在上方的窗口看见了

Step4:动态加载

首先我们看一下在property窗口静态设置图标的方法,此处以label为例
在这里插入图片描述
选择之后,运行程序就能看到图标被静态加载了

动态加载,window有SetWindowIcon函数,Button等有SetIcon函数,Label不能设置icon,但是可以设置bitmap,函数为SetBitmap,我当时遇到的问题就是在使用这些函数的时候,设置图标路径除了问题。

网上大多写的是setWindowIcon(QIcon(“myicon.ico”))或者setWindowIcon(QIcon(":/resource/myicon.ico")),我按照这个写代码运行的结果就是图标无法显示,后来在看UI文件的源码的时候,一个静态添加的图标表示出来是

在这里插入图片描述
看到UI文件的描述顿时开朗了,前面添加的文件前缀这里被用上了,于是修改代码如下
窗口:setWindowIcon(QIcon(":/new/prefix1/myicon.icon"))
label:label->SetPixmap(QPixmap(":/new/prefix1/1.bmp"))

成功动态加载图标

后记

后来尝试了使用文件绝对路径加载,也没有问题,相对路径没搞出来,不知道是否可行
label->SetPixmap(QPixmap(“D:/xxx/xxx/1.bmp”))

参考

https://blog.youkuaiyun.com/m0_37290785/article/details/76033219

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值