首页 > 其他分享 >QT5中动态更改图标的方法(转)

QT5中动态更改图标的方法(转)

时间:2023-05-23 19:45:09浏览次数:34  
标签:文件 QT5 icon 更改 label 添加 图标 加载

简述
在做工程中遇到一个问题,需要根据程序的运行动态的改变显示的图标。在网上找了几篇博客,都失败了,后来自己看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.csdn.net/m0_37290785/article/details/76033219
————————————————
版权声明:本文为CSDN博主「happylee524」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/happylee524/article/details/86602945

标签:文件,QT5,icon,更改,label,添加,图标,加载
From: https://www.cnblogs.com/xihong2014/p/17426187.html

相关文章

  • jupyter notebook更改默认工作目录
    jupyternotebook默认配置路径:C:\Users\Administrator\.jupyter\jupyter_notebook_config.py如果找不到配置文件,可以生成一个jupyternotebook--generate-config生成配置文件,启动jupyternotebook,会显示配置文件的路径。打开配置文件jupyter_notebook_config.py,找到c.Noteb......
  • UbuntuDeskTop删除Wine安装迅雷程序卸载后的图标
    试了几种方案(一)卸载ubuntu下用wine安装的程序,可以用wineuninstaller命令,打开添加/删除程序界面,进行删除程序操作:确定无效!重启后无效果。(二)终端输入:cd/home/jack/.config/menus/applications-mergedls-al会发现文件后缀为.menu的已经删除的文件,用rm命令删除。......
  • 如何定制Buildroot文件系统-基于TQT507开发板
    如何定制Buildroot文件系统-基于TQT507开发板本文档介绍在开发时如何定制文件系统(buildroot添加应用软件/文件),适用于天嵌开发板TQT507。1.Buildroot简介Buildroot是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。可以和编......
  • 办公位2.0,用SVG实现Chrome浏览器图标,文末有近半年经验总结
    功能拆解很多图形的实现并不困难,我之前的文章也实现过各式各样的图形。基本是CSS里的样式约熟悉,图形实现的越快速、越相似。还有一些需要SVG或Canvas实现的图形,这就需要这两项技术的基本功扎实了。简单图形设计整个画面中有很多图形,有些图形比如画框、太阳、桌腿、便签,无论是形状还......
  • vue中输入密码带图标可见不可见切换
    data(){return{userName:"",pswd:"",loginDisabled:false,labelPosition:"top",passwordType:'password',passwordIcon:require('@m/assets/images/bukejian.png')......
  • jre jdk更改目录后Java无法运行问题解决方案
    问题:在将Java文件(包含jdkjre)由C盘直接剪贴到D盘后,所有Java程序无法运行,且其Java图标不再显示。解决方案:首先更改环境变量。当我们单纯地将Java文件更改位置后,我们计算机的环境变量仍未改变,依旧是当时安装Java时的配置。步骤:控制面板—>系统和安全—>系统—>高级系统设置—>环境......
  • 代码一直在rebasing master状态,怎么重制到最新代码(不管之前的所有更改)
    根据你的gitstatus输出,你正在进行一个rebase操作,而且还有未完成的操作。如果你只想要让分支在最新的代码上,可以放弃当前的rebase操作,并从远程仓库拉取最新的代码,可以按照以下步骤进行操作:执行gitrebase--abort命令来放弃当前的rebase操作。执行gitfetchorigin......
  • Chrome更新全新设计的 HTTPS 图标
    导读HTTPS是一种用于安全地传输数据的网络协议。HTTPS是在HTTP协议的基础上添加了SSL/TLS协议,通过对数据进行加密,从而保证数据传输的安全性。HTTPS常用于保护敏感信息,如个人身份信息、银行账户信息、信用卡信息等。目前市面上所有的浏览器都会在与网站通过HTTPS......
  • 资源文件:获取 EXE、DLL 或 ICO 文件中的图标
    //声明:ExtractIcon( hInst:HINST;     {调用函数的程序实例} lpszExeFileName:PChar;{文件路径;文件可以是*.exe、*.dll、*.ico} nIconIndex:UINT    {图标索引}):HICON;{返回图标句柄;索引为0时返回第一个图标句柄;索引为#FFFFFFFF......
  • blog-博客美化-悬浮图标-右下角关注楼主
    添加一个“关注楼主”进入自己的博客园->设置,将以下css代码添加到“页脚Html代码”<scripttype="text/javascript"language="javascript">//为右下角推荐推荐区域添加关注按钮window.onload=function(){$('#div_digg').prepend('<divstyle="padding-botto......