如何替换QT桌面应用的图标,这么简单的一个需求,却让人折腾了半天.
本人使用的是Linux版本Qt Creator4.12.4, Qt 5.14.2,版本有点老了,但是这块的内容应该不影响. 网上的博文,一没有指明版本,二是说的太粗略,让人一头雾水,我跟着做,竟然没有看到预期的效果,光火.
首先,更正其他博文一点:替换桌面应用Icon,并不是要求图片格式一定是ico格式的;如果你是代码的方式,替换默认图标,那必须是ico格式的图片;但是如果从编辑器设置应用图片,其他格式的图片也是可以的.
在Linux环境中,应用默认图片如图示:
第一种替换方式:
在编辑器界面,主窗口QWidget里面的windownicon属性,后面是有下拉箭头的,可以选择从资源文件或者文件选择icon文件;通过这种方式,icon文件,即可以是ico格式,也可以是png格式,其他的格式,没有进行试验.
通过选择文件的方式,给应用设置了图标.
通过版本控制工具,查看以本地文件为应用图标的变化,发现文件的相对路径,被写入到了mainwindow.ui中.这样应用发布的时候,本地文件是否会被打包一起发布,这里存疑.被删除的红色代码,是通过引用资源文件的方式设置的,这个会在下面提到.
第二种替换方式
-
首先创建资源文件:文件->新建文件或项目:
这里,我们命名这个资源文件为app,则在工程目录下生成app.qrc的资源文件,同时,在pro文件中,自动新增代码:
当然,手动创建文件,然后在pro中增加如下配置,效果也是一样的.RESOURCES += \ app.qrc
-
拷贝图片,修改qrc文件
为了管理方便,在工程目录根目录下,创建文件夹icon
,其实名称随意,只要在后面配置中保持一致即可.将资源文件拷贝到创建的目录中.
在这个文件上,右键,选择Open In Editor:
修改一下,默认的前缀,不改也可以,但是默认的没有任何实际意义,所以改了为好,然后,点击AddProfix.然后点击后边的Add Files,把你的图标文件添加好,注意,如果你要使用代码的方式修改应用图片,你的文件要求是ico格式的.
添加完之后,是这样的:
-
同方式一,只不过下拉时选择从资源文件替换图标.这时,你可以选择ico格式的,也可以选择png格式的.
第三种方式-代码
按照第二种方式,创建完资源文件qrc之后,在代码中是这样写的:
// 冒号,应该是Qt资源文件格式;
// images是自定义的前缀;
// 后面,是资源文件路径.
setWindowIcon(QIcon(":/images/icon/bitbug_favicon.ico"));
这时候,你引用的文件,必须是ico格式的.
替换完之后,在任务栏上的样子:
以上.