修改qt程序的图标(for windows)

本文介绍了一种简单的方法来更改Windows环境下使用QT编写的程序图标。通过创建一个包含指定图标的资源文件,并在项目的pro文件中引用该资源文件,即可轻松实现程序图标的自定义。

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

   QT 4.5.3 XP 环境下测试OK。

 

    原文地址:http://hgoldfish.mysmth.net/2008/07/20/修改qt程序的图标for-windows/

 

    最近经常在windows写qt程序。编译完的qt程序图标是windows默认的应用程序图标,不好看。于是就想给它换一个,找了一下qt的帮助文档,里面有提到这个问题。方法也挺简单的:

   

    首先当然要有一个图标了,呵呵。把这个图标复制到程序的主目录下,姑且名字叫”myicon.ico”吧。没有?可以自己用vc画一个。然后编写一个icon.rc文件。里面只有一行文字:
IDI_ICON1               ICON                    “myicon.ico”

 

    最后,在工程的pro文件里加入一行:
    RC_FILE = icon.rc

 

    qmake和make一下,就可以发现你的应用程序拥有漂亮的图标了。

    顺便说一下,做WindowBlinds的那个公司有一个IconPackager,还一个叫做IconStudio的吧。可以用来管理和生成图标文件。 不过貌似要收钱的.

 

### 如何在 Windows 上使用 QT 创建应用程序快捷方式 为了实现这一功能,可以利用 `QSettings` 类来操作 Windows 注册表,从而达到创建快捷方式的效果。另一种方法是通过调用 Shell API 来直接创建桌面或开始菜单中的快捷方式。 #### 方法一:通过注册表设置自启动并间接创建快捷方式 由于修改注册表通常需要管理员权限,因此建议先确保程序有足够的权限执行这些操作[^2]: ```cpp #include <QCoreApplication> #include <QSettings> void setAutoStart(bool enable){ QSettings settings("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat); if (enable) settings.setValue("MyApp", QApplication::applicationFilePath()); else settings.remove("MyApp"); } ``` 此代码片段展示了如何将应用添加至启动项列表中,这会使得每次登录系统时自动运行该软件,并且可以在 `%APPDATA%\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup` 文件夹内看到对应的.lnk文件被创建出来。 #### 方法二:直接创建快捷方式 更推荐的方式是在安装过程中或者首次启动时主动创建一个指向可执行文件的 `.lnk` 快捷方式放在用户的桌面上或者其他位置。下面给出一段 C++ 代码作为示范,它借助了 Windows 的 COM 接口 IShellLink 和 IPersistFile 完成这项工作: ```cpp #include <windows.h> #include <shlobj.h> // For IShellLink and IPersistFile interfaces bool createShortcut(const QString& targetPath, const QString& shortcutName) { CoInitialize(NULL); IShellLink* psl; HRESULT hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, reinterpret_cast<void**>(&psl)); if (FAILED(hres)) return false; psl->SetPath(targetPath.toStdWString().c_str()); IPersistFile* ppf; hres = psl->QueryInterface(IID_IPersistFile, reinterpret_cast<void**>(&ppf)); if (SUCCEEDED(hres)){ QString lnkPath = QDir::homePath() + "/Desktop/" + shortcutName + ".lnk"; hres = ppf->Save(lnkPath.toStdWString().c_str(), TRUE); ppf->Release(); } psl->Release(); CoUninitialize(); return SUCCEEDED(hres); } int main(){ bool success = createShortcut(QApplication::applicationFilePath(), "My Application Shortcut"); qDebug() << (success ? "Shortcut created successfully!" : "Failed to create shortcut."); } ``` 这段代码定义了一个名为 `createShortcut()` 函数,接受两个参数——目标路径和要创建的快捷方式名称。成功后会在当前用户的桌面上放置一个新的链接图标指向指定的应用程序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值