QT 在 windows 下 如何指定 exe 的图标文件
时间: 2024-03-26 11:40:30 浏览: 16
在QT中,可以通过修改项目文件(.pro)或使用Qt Creator中的图标编辑器来为应用程序指定图标文件。具体步骤如下:
1. 修改项目文件
在项目文件(.pro)中添加以下代码,其中,path/to/icon.ico是指向图标文件的路径。
```
win32: RC_ICONS += path/to/icon.ico
```
2. 使用Qt Creator中的图标编辑器
打开Qt Creator,选择项目文件(.pro),然后选择“项目”菜单中的“应用程序图标”,在图标编辑器中上传自定义图标文件,保存即可。
无论是哪种方式,指定图标后,编译生成的exe文件就会显示指定的图标了。
相关问题
QT 在 windows 下,使用CMAKE 构建项目时,如何指定 exe 的图标文件
在使用CMake构建QT项目时,可以通过以下步骤指定exe的图标文件:
1. 在CMakeLists.txt文件中添加以下代码,其中,path/to/icon.ico是指向图标文件的路径。
```
if(WIN32)
set(CMAKE_RC_COMPILER_INIT windres)
ENABLE_LANGUAGE(RC)
SET(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> -O coff -I${CMAKE_CURRENT_SOURCE_DIR} -i <SOURCE> -o <OBJECT>")
SET(ICON_PATH path/to/icon.ico)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resource.rc.in ${CMAKE_CURRENT_BINARY_DIR}/resource.rc)
set(CMAKE_RC_FLAGS "-c 65001")
set(SOURCE_FILES ${SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/resource.rc)
endif(WIN32)
```
2. 在项目根目录下新建resource.rc.in文件,添加以下代码:
```
IDI_ICON1 ICON DISCARDABLE "${ICON_PATH}"
```
3. 在CMakeLists.txt文件中添加以下代码,将resource.rc文件添加到项目中:
```
if(WIN32)
set(SOURCE_FILES ${SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/resource.rc)
endif(WIN32)
```
4. 在生成exe文件的命令中,添加以下代码,将resource.rc文件链接到exe文件中:
```
if(WIN32)
add_executable(${PROJECT_NAME} WIN32 ${SOURCE_FILES})
endif(WIN32)
```
指定图标后,重新构建项目,生成的exe文件就会显示指定的图标了。
windows 下,qt设置桌面图标
在Windows操作系统下,使用Qt设置桌面图标可以通过以下步骤完成。
首先,我们需要在Qt项目的.pro文件中添加一些配置。打开.pro文件,找到类似于"TEMPLATE"和"TARGET"的行,添加以下配置:
```
win32 {
TARGET = MyApp
RC_FILE = resources/icons.rc
}
```
其中"TARGET"是你的应用程序的名称,"RC_FILE"是一个资源文件,用于设置图标。
接下来,我们需要创建一个资源文件icons.rc,并将其保存在resources文件夹中(如果没有该文件夹请自行创建)。在icons.rc文件中,添加以下内容:
```
IDI_ICON1 ICON "path/to/icon.ico"
```
其中"path/to/icon.ico"是你选择的图标文件的路径。确保路径是正确的,图标文件是一个.ico格式的图标文件。
然后,我们需要在main函数的开始位置调用以下代码,将应用程序图标设置为桌面图标:
```
#ifdef Q_OS_WIN
QFile iconFile(":/path/to/icon.ico");
if(iconFile.exists())
{
QSettings settings("HKEY_CURRENT_USER\\Control Panel\\Desktop","");
settings.setValue("WallPaper","");
settings.setValue("TileWallPaper","0");
settings.setValue("WallpaperStyle","2");
settings.sync();
QProcess::execute("attrib +s +h +r filename.ico");
if(QFile::copy(QStringLiteral(":/path/to/icon.ico"),"filename.ico"))
{
QFile::remove("filename.ico2"); // 清理上次复制时的遗留文件
}
QProcess::execute("attrib +s +h +r filename.ico");
QSettings reg("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Icons",QSettings::NativeFormat);
if (reg.isArray("IconService"))
{
if (QMessageBox::Yes == QMessageBox::information(NULL,QObject::tr("Warning"),QObject::tr("Reset Desktop Icon to Default Image?"),QMessageBox::Yes,QMessageBox::No))
{
reg.remove("IconService");
}
}
if (!reg.isArray("IconService"))
{
reg.setValue("IconService",0);
}
}
#endif
```
以上代码会将资源文件中指定的图标拷贝到应用程序目录下,并将其设为桌面图标。
最后,重新编译和运行应用程序,即可在Windows桌面上看到设置好的图标。请确保图标文件的路径和命名是正确的,并且应用程序保存的图标文件已经设置为隐藏、系统和只读属性,以保证图标的正确显示。