【转】设置Qt应用程序图标及应用程序名

2023-05-16

一直以来很纠结给qt应用程序添加图标问题,在网上收过一次,但是感觉不够完整,现将自己的实现过程记录下,以便以后查看:

通过网上的例子知道qt助手中有相关说明:

Setting the Application Icon

The application icon, typically displayed in the top-left corner of an application's top-level windows, is set by calling theQWidget::setWindowIcon() method on top-level widgets.

In order to change the icon of the executable application file itself, as it is presented on the desktop (i.e., prior to application execution), it is necessary to employ another, platform-dependent technique.

Setting the Application Icon on Windows

First, create an ICO format bitmap file that contains the icon image. This can be done with e.g. Microsoft Visual C++: SelectFile|New, then select the File tab in the dialog that appears, and choose Icon. (Note that you do not need to load your application into Visual C++; here we are only using the icon editor.)

Store the ICO file in your application's source code directory, for example, with the name myappico.ico. Then, create a text file called, say, myapp.rc in which you put a single line of text:

 IDI_ICON1               ICON    DISCARDABLE     "myappico.ico"

Finally, assuming you are using qmake to generate your makefiles, add this line to your myapp.pro file:

 RC_FILE = myapp.rc

Regenerate your makefile and your application. The .exe file will now be represented with your icon in Explorer.

If you do not use qmake, the necessary steps are: first, run the rc program on the .rc file, then link your application with the resulting .res file.

 

从上面可将方法分为两种:

1.使用软件的方法可设置程序窗口的默认图标,但是它无法改变应用程序文件.exe的图标。

2.使用qmake生成makefile的,如qt+eclipse,qt creator通过”If you do not use qmake"之前的方法就可以解决

3.使用qt+vs2010不是用qmake的情况,需要执行"If you do not use qmake..."方法,先将.rc文件添加到工程中,再编译.rc文件,最后重新连接下即可改变图标。

实现过程:

1.设置应用程序运行时所有窗口默认图标,

 

[cpp]  view plain copy
 
  1. QApplication a(argc, argv);  
  2. //获得可执行程序路径  
[cpp]  view plain copy
 
  1. QString dir = QApplication::applicationDirPath();  
  2. //设置可执行程序路径为当前工作路径  
  3. QDir::setCurrent(dir);  
  4. QApplication::addLibraryPath("./plugins");  
[cpp]  view plain copy
 
  1. QApplication::addLibraryPath("./images");  
  2. a.setWindowIcon(QIcon("./images/myappico.ico"));  
2.通过qmake生成makefile实现过程:

 

a.找到一张图片.ico,名字改为myappico.ico;

b.创建一个新的文本文档,内部添加  IDI_ICON1           ICON   DISCARDABLE   "myappico.ico",并将文件重命名为myapp.rc;

c.在myapp.pro文件最后加上RC_FILE = myapp.rc,重新生成之后,就修改成功了
3.不用qmake生成makefile实现过程:

前面两步骤一样,最后一步改为,将.rc文件加载至工程中,通过右键工程——添加——已存在文件,添加后右键.rc文件编译,重新生成可执行文件后就修改成功了

转载于:https://www.cnblogs.com/tiandsp/p/7580583.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【转】设置Qt应用程序图标及应用程序名 的相关文章

随机推荐

  • C++ 防止重定义

    防止重定义有2种方法 xff1a 第一种 xff1a ifndef MY HEAD H INCLUDED define MY HEAD H INCLUDED endif MY HEAD H INCLUDED 此种方案是一种很通用的方案 xf
  • 51单片机串口通讯c语言程序,如何使用51单片机实现串口通信

    描述 STC51单片机一般带有1个串口 xff0c 有的带有2个串口 xff0c 串口一般用于下载程序和串口通信 串口通信特别适合控制设备 xff0c 所以工控机的电脑上一般都带有串口 51单片机的串口引脚为P3 0引脚与P3 1引脚 xf
  • nautilus命令

    nautilus 是图形程式 效果是以当前用户打开图形界面 所以如果想以root打开图形界面 使用时记得先切为root xff0c sudo没有用的 转载于 https www cnblogs com wangshaowei p 90313
  • 如何在SV中使用结构体struct语法

    前言 测试下可综合的struct xff0c struct和interface的区别 xff1a 两者都可以是信号的组合 xff0c 但interface可以定义信号的不同方向 xff0c 而struct中的所有信号都是同向的 struct
  • http digest

    HTTP digest 摘要访问认证是一种协议规定的Web服务器用来同网页浏览器进行认证信息协商的方法 它在密码发出前 xff0c 先对其应用哈希函数 xff0c 这相对于HTTP基本认证发送明文而言 xff0c 更安全 从技术上讲 xff
  • 理解字节序

    1 计算机硬件有两种储存数据的方式 xff1a 大端字节序 xff08 big endian xff09 和小端字节序 xff08 little endian xff09 举例来说 xff0c 数值0x2211使用两个字节储存 xff1a
  • Solaris 10整合apache与php过程及出错处理

    Solaris 10 整合 apache 与 php 过程及出错处理 lt xml namespace prefix 61 o ns 61 34 urn schemas microsoft com office office 34 gt 作
  • 去百度API的百度地图准确叠加和坐标转换的解决方案研究

    文章版权由作者李晓晖和博客园共有 xff0c 若转载请于明显处标明出处 xff1a http www cnblogs com naaoveGIS 1 背景 目前项目上如果要使用百度地图 xff0c 得加载百度的开发包 xff0c 然后通过百
  • 7款纯CSS3实现的炫酷动画应用

    1 纯CSS3实现人物摇头动画 这次我们要来分享一款超级可爱的纯CSS3人物摇头动画 xff0c 初始化的时候人物的各个部位是利用CSS3动画效果拼接而成 xff0c 接下来就是人物听音乐的场景 xff0c 一边听音乐一边摇着脑袋 xff0
  • 快速将自己的应用程序做成安装包

    打包程序的方式多种多样 xff0c 比如大家常用的VS NSIS等等 xff0c 但对于一个简单的应用程序 xff0c 如果你不涉及复杂的安装设置 xff0c 那么压缩工具 xff0c 是个不错的选择 当然用压缩工具制作程序安装包已经不是什
  • 关于小程序websocket全套解决方案,Nginx代理wss

    需求对话 提问 我在本地web能够使用ws协议去链接websocket xff0c 但是小程序不能使用 回答 由于小程序使用的是SSL加密协议 xff0c 所以需要使用wss 这里wss与ws的关系就相当于https于http的关系 提问
  • 打印机主流的指令类型(ESC命令集+CPCL命令集+TSPL命令集)

    概述 打印指令 xff0c 又称打印控制命令 计算机通过打印控制语言 xff0c 以软件命令的方法来控制打印机操作 xff0c 解释执行打印数据 xff0c 获得打印结果的 对于打印机所实现的复杂功能而言 xff0c 打印控制语言是基础 它
  • Hive - truncate partition、drop partition 区别

    2019独角兽企业重金招聘Python工程师标准 gt gt gt Hive 有两种方法删除指定parition的数据 xff1a truncate partition drop parition 功能 xff1a 两者都用于删除数据 xf
  • ca-bundle.crt文件,用于php发起外部https请求

    2019独角兽企业重金招聘Python工程师标准 gt gt gt Bundle of CA Root Certificates Certificate data from Mozilla downloaded on Wed Aug 13
  • 执行truffle unbox react报错,出现Error: connect ECONNREFUSED 0.0.0.0:443问题的解决办法

    前提 xff1a 我是用的是MAC系统 xff0c 不知道使用windows系统是否也可以 react box 项目构建 localhost ReactDapp liyuechun truffle unbox react box Start
  • 如何合并PDF文件?教你几种超简单的方法

    如何合并PDF文件呢 xff1f 我们在工作中会遇到很多难以处理的文件 xff0c 比如PDF文件就是一种 xff0c 尤其是将多个PDF文件合并成一个PDF文件 xff0c xff0c 其实大多数人都不知道将其合并 xff0c 盲目的在网
  • not a valid identifier解决

    not a valid identifier不是有效的标识符 因为在 usr的 多加了一个空格 xff0c 导致JAVA Home 无法识别 转载于 https www cnblogs com wxd136 p 10332040 html
  • asp链接数据库[转]

    1 ASP连接Access数据库语句 Set Conn 61 Server CreateObject 34 ADODB Connection 34 Connstr 61 34 DBQ 61 34 43 server mappath 34 w
  • OpenGL纹理映射

    GLfloat xrot X 旋转量 GLfloat yrot Y 旋转量 GLfloat zrot Z 旋转量 GLuint texture 1 存储一个纹理 AUX RGBImageRec LoadBMP char Filename 载
  • 【转】设置Qt应用程序图标及应用程序名

    一直以来很纠结给qt应用程序添加图标问题 xff0c 在网上收过一次 xff0c 但是感觉不够完整 xff0c 现将自己的实现过程记录下 xff0c 以便以后查看 xff1a 通过网上的例子知道qt助手中有相关说明 xff1a Settin