为Qt生成的可执行程序设置图标

本文详细介绍了如何使用QtCreator为生成的可执行程序设置自定义图标,包括Windows平台下的具体步骤,涉及创建ICO文件、创建.rc文件、使用qmake或手动连接.res文件等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       用Qt Creator编译后生成的可执行程序都是系统默认可执行程序的图标,很难看,如果想自己设置自定义图标该怎么做呢?

       首先想到的就是看官方文档,Qt有比较完善的文档,而且检索和浏览的方式十分的简单,记得以前的QtSDK版本安装完成之后总是可以在开始菜单栏中找到assistant这个程序,打开就可以浏览了。然而最新版本安装后没有这个。。。所以只能进入安装目录下打开这个程序,但是发现啥都没有,此时我们应该这样理解,我们打开的assistanr只是一个阅读器,我们还没有打开要阅读的文档,所以,现在啥都没有,那么文档放在哪里呢?放在了软件安装目录下的Documentation目录下,都是一些.qch文件。但是assistant这个阅读器和其他阅读器不一样,它没有“打开文件”这个菜单,这让我们如何是好呢?进入dos命令行输入assistant -help看一下这个程序的使用方法,如下图:

       看到-register helpFile这个选项,知道这个软件需要先将文档注册进去,这个怎么注册我相信大家已经很清楚了。接下来看一下我注册完毕的图:

           接下来我们就可以搜索相应的内容了,搜索的关键字和结果我直接贴图:

          这个文档里面介绍了为Qt生成的可执行程序设置图标的方法, 各个平台的方法都有介绍到,我这里说一下Windows下的方法,其它平台参考文档即可:

设置应用程序图标:

      应用程序图标,典型的就是显示在程序顶级窗口的左上角的那个图标,可以通过调用QWidget::setWindowIcon()函数来设置。

      为了改变可执行程序自身的图标,就像他们显示在桌面一样。我们必须使用到一些和平台相关的技术。

在Windows平台为应用程序设置图标:

第一步:创建一个包含图标图像的ICO文件,并将其保存在源文件目录下,可命名为myapp.ico;

第二步:创建一个.rc文件,包含如下内容:

IDI_ICON1               ICON    DISCARDABLE     "myappico.ico"


第三步:

1、如果你是使用qmake生成makefile文件,那么你只需要在工程文件myapp.pro文件中写入如下内容:

RC_FILE = myapp.rc


再次编译程序,即可达到效果

2、如果你不是使用qmake来生成makefile文件,那么你需要这样做:首先使用Qt自带工具rc处理第二步创建额.rc文件,然后在连接程序的时候连接上之前处理生成的.res文件。

实例效果:

这里我贴一下我做的效果:

1、在文件浏览器中的效果:

2、在桌面的效果:

好了,今天就到这!

<think>我们正在讨论在Linux系统下使用Qt生成可执行程序。根据引用[2]和引用[3],我们可以总结出以下步骤: 1. **编译环境设置**:确保你的Qt项目已经配置为Release模式。在Qt Creator中,你可以在左下角的构建套件选择器中将构建模式从Debug切换到Release。 2. **编译项目**:在Qt Creator中,构建项目(通常点击左下角的锤子图标)。构建完成后,在项目的构建目录(通常是项目目录下的build-<项目名>-<构建套件>-Release或类似名称的文件夹)中会生成可执行文件(不带扩展名或有时带扩展名,但在Linux下通常没有扩展名)。 3. **准备可执行文件**:创建一个新的文件夹(例如,在桌面或任意位置),将生成的可执行文件复制到这个新文件夹中。注意,这个可执行文件可能依赖于Qt的动态库,因此不能直接在其他机器上运行。 4. **使用部署工具**:在Linux下,我们可以使用`linuxdeployqt`工具来自动收集可执行文件所依赖的库和插件,并打包到同一目录下。这样,这个目录就可以被复制到其他没有安装Qt的Linux机器上运行。 - 首先,确保你已经安装了`linuxdeployqt`。如果没有,可以从其GitHub仓库(https://github.com/probonopd/linuxdeployqt)下载或按照说明安装。 - 打开终端,进入你创建的新文件夹(包含可执行文件的文件夹)。 - 运行命令:`linuxdeployqt <你的可执行文件名> -appimage` 或者 `linuxdeployqt <你的可执行文件名>`。使用`-appimage`选项会生成一个AppImage文件,这是一个可移植的Linux应用程序格式;如果不使用,则会在当前目录下创建包含所有依赖的文件夹结构。 5. **测试**:将打包好的文件夹(或AppImage文件)复制到另一台没有安装Qt的Linux机器上,尝试运行可执行文件,确保它能正常工作。 注意:在某些情况下,你可能需要先安装一些额外的库,比如`libxcb`相关的库,因为Qt应用程序可能依赖于它们。如果遇到运行问题,可以使用`ldd`命令查看缺失的库,然后安装相应的包。 引用[2]中提到了在高版本Ubuntu(22.04)下使用`linuxdeployqt`可能会遇到问题,因此可能需要查看该工具的文档或社区支持以解决特定问题。 下面是一个示例步骤的详细说明: 假设我们的项目名为`MyQtApp`,生成的可执行文件为`MyQtApp`(在Linux下没有扩展名)。 步骤: 1. 在Qt Creator中,将构建模式设置为Release,然后构建项目。 2. 在项目的构建目录中找到Release文件夹,复制可执行文件`MyQtApp`到一个新文件夹,例如`~/Desktop/MyQtApp_Release`。 3. 打开终端,进入该文件夹: ```bash cd ~/Desktop/MyQtApp_Release ``` 4. 运行`linuxdeployqt`: ```bash linuxdeployqt MyQtApp -appimage ``` 或者,如果你不想生成AppImage,而只是希望将依赖库复制到当前目录下的lib文件夹中,可以运行: ```bash linuxdeployqt MyQtApp ``` 注意:`linuxdeployqt`需要可执行文件已经设置了可执行权限。如果没有,请先运行: ```bash chmod +x MyQtApp ``` 5. 等待`linuxdeployqt`完成,它会在当前目录下创建必要的子目录(如lib, plugins等)并复制所需的库文件。 现在,`MyQtApp_Release`文件夹就包含了运行你的Qt程序所需的所有文件。你可以将此文件夹打包并分发到其他Linux机器上运行。 注意:在某些情况下,你可能需要手动指定Qt插件的路径,特别是如果应用程序使用了像sqldrivers、platforms等插件。`linuxdeployqt`通常会尝试自动检测,但有时可能需要额外的参数。例如,如果使用了SQLite数据库,你可能需要确保相应的SQL驱动被正确复制。 引用[1]和引用[3]主要针对Windows平台,但步骤1和3(关于设置Release模式和复制可执行文件)在Linux下也是类似的。 [^1]: QT生成可执行文件的步骤 [^2]: linux平台qt程序的编译以及使用linuxdeployqt打包 [^3]: QT生成可执行文件 §§相关问题§§ 1. 如何在Linux下安装linuxdeployqt工具? 2. 如果使用linuxdeployqt打包后仍然缺少库,应该如何解决? 3. 除了linuxdeployqt,还有哪些工具可以用于打包Qt应用程序?</think>### Linux Qt 编译生成可执行文件步骤 在 Linux 系统下使用 Qt 生成可执行文件需要以下步骤: 1. **切换到 Release 模式** 在 Qt Creator 左下角的构建套件选择器中,将构建模式从 Debug 改为 Release ![Qt Creator 构建模式选择](https://doc.qt.io/qtcreator/images/qtcreator-build-mode.png) 2. **编译项目** 点击左侧的"构建"按钮(锤子图标)或按 `Ctrl+B` 进行编译。编译成功后,在项目构建目录中会生成可执行文件(无扩展名),路径通常为: `build-<项目名>-<编译器>-Release/<项目名>` 3. **准备部署目录** ```bash mkdir ~/MyAppRelease # 创建新目录 cp build-<项目名>-<编译器>-Release/<项目名> ~/MyAppRelease/ # 复制可执行文件 cd ~/MyAppRelease # 进入部署目录 ``` 4. **使用 linuxdeployqt 打包依赖** 这是关键步骤,自动收集所有依赖库: ```bash # 安装 linuxdeployqt sudo apt-get install linuxdeployqt # 打包依赖(确保在部署目录执行) linuxdeployqt <项目名> -appimage ``` 该命令会自动检测并复制所有依赖的 Qt 库、系统库和插件到当前目录[^2] 5. **测试可执行文件** ```bash ./<项目名> # 测试程序是否正常运行 ``` 6. **分发应用程序** 将整个 `MyAppRelease` 目录打包即可分发: ```bash tar -czvf MyApp.tar.gz ~/MyAppRelease ``` ### 注意事项 1. **依赖问题** 如果提示缺少库,使用 `ldd` 检查依赖: ```bash ldd <项目名> | grep "not found" ``` 手动安装缺失的库后重新打包 2. **高版本系统兼容性** 在 Ubuntu 22.04 等新版系统上,可能需要额外步骤: ```bash sudo apt-get install libfuse2 # 解决 AppImage 运行问题 export QMAKE=/path/to/your/qmake # 指定 qmake 路径 ``` 3. **插件处理** 如果使用数据库、多媒体等模块,需手动添加插件: ```bash mkdir plugins cp -r /path/to/qt/plugins/* plugins/ ``` 4. **桌面文件集成** 创建 `.desktop` 文件使程序显示在应用菜单: ```ini [Desktop Entry] Name=MyApp Exec=./<项目名> Icon=app_icon.png Type=Application Categories=Utility; ``` ### 完整示例流程 ```bash # 在项目目录操作 qmake -makefile make release # 准备发布 mkdir ~/AppRelease cp myapp ~/AppRelease/ cd ~/AppRelease # 部署依赖 linuxdeployqt myapp -appimage # 测试运行 ./myapp ``` [^1]: QT生成可执行文件的步骤 [^2]: linux平台qt程序的编译以及使用linuxdeployqt打包 [^3]: QT生成可执行文件
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值