QT 设置程序图标

在qt应用程序中,我们能想到的图标一般就以下三种:


icon种类
应用窗口左上角的 图标
setWindowIcon()
状态栏上显示的图标
setWindowIcon()
可执行程序本身的图标
两种设置方式,下面会讲

对于以上三种图标都该怎么样设置呢?

一.我们先来讨论前两种,分别是窗口左上角的图标和状态栏的图标,

    其实这两种图标只需要设置一次就可以了,他们总是相同的,并没有专门针对状态栏图标设置的函数。


二.我们一起说一下可执行程序的图标,如果我们不设置的话,会有个默认的图标像下面这个一样

            

         显然很丑的。那我们怎么设置成自己喜欢的图标呢?这里有两种方式可以设置:


    方式一:使用qmake来生成makefile文件,只需要在.pro中添加

            RC_ICONS = logo.ico

     然后,重新生成makefile文件和应用程序,对应的.exe可执行程序将会出现刚才看到的图标。

     这种情况下,要将logo.ico与.pro文件放到同一个文件夹下。

     方式二:

        1.在项目代码文件夹中,新建一个logo.txt文件,在文件里写上以下内容:

        IDI_ICON1     ICON    DISCARDABLE     "logo.ico"

        2. 然后重命名为logo.rc文件。

        3. 在.pro文件里添加:

       RC_FILE = logo.rc

        4.重新编译就可以了。



三、我们就多讨论一点。如果只设置了可执行程序的图标,而没有设置窗口左上方的图标,会是什么样的呢?

    答案就是 如果只设置了可执行程序的图标,而没有设置窗口左上方的图标。结果就是窗口左上方的图标、状态栏图标和可执行程序图标将使用同一个图标。 反之却不能。



### 如何在 QT 庱用程序设置窗口或应用程序图标 #### 设置方法概述 在 QT 中,可以通过多种方式来设置应用程序图标以及特定窗口的图标。这些操作通常涉及资源文件 (`.qrc`) 的配置、`setWindowIcon()` 方法的应用以及其他必要的代码实现。 --- #### 1. 将图标添加到 `.qrc` 文件中 为了方便管理资源文件,在设置图标之前需要先将所需的图标文件加入到项目的资源文件 (`*.qrc`) 中。这一步骤通过 Qt Creator 或手动编辑 `.qrc` 文件完成[^1]。 示例 `.qrc` 配置: ```xml <RCC> <qresource prefix="/"> <file>Icons/kitty.png</file> </qresource> </RCC> ``` --- #### 2. 使用 `QApplication::setWindowIcon()` 设置全局应用图标 如果希望为整个应用程序设置统一的图标,则可以在 `main.cpp` 文件中调用 `QApplication::setWindowIcon()` 方法[^2]。 示例代码: ```cpp #include <QApplication> #include <QIcon> int main(int argc, char *argv[]) { QApplication myApp(argc, argv); QIcon appIcon; appIcon.addFile(":/Icons/kitty.png"); myApp.setWindowIcon(appIcon); return myApp.exec(); } ``` 上述代码会将指定路径下的图标应用于所有顶级窗口的左上角位置。 --- #### 3. 单独设置某个窗口的图标 对于单独的窗口实例,可以直接在其构造函数内部调用 `QWidget::setWindowIcon()` 来定义其专属图标[^4]。 示例代码: ```cpp class MainWindow : public QMainWindow { public: MainWindow(QWidget *parent = nullptr) : QMainWindow(parent) { QIcon windowIcon; windowIcon.addFile("F:/images/logo.ico"); setWindowIcon(windowIcon); } }; ``` 此方法允许不同类型的窗口拥有不同的图标设计。 --- #### 4. 修改项目文件 (*.pro) 和 Windows 平台上的可执行文件图标 为了让最终生成的可执行文件本身也带有自定义图标(特别是在 Windows 系统下),需调整项目的 `.pro` 文件内容[^5]: - 删除原有的 RC 相关条目(如果有): ```plaintext RC_ICONS= RC_LANG= ``` - 添加新的 ICON 定义: ```plaintext RC_ICONS=myapp_icon.rc ``` 随后创建对应的资源脚本文件 `myapp_icon.rc` ,并写入类似以下的内容: ```plaintext IDR_MAINFRAME ICON "logo.ico" ``` 最后重新编译工程即可生效。 --- #### 注意事项 - 图标的大小应适配目标平台的要求,常见的尺寸包括 16×16 像素、32×32 像素等。 - 如果同时设置了多个级别的图标(如全局与局部),则具体效果取决于优先级设定和实际运行环境的行为差异。 ---
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值