应用程序图标
1.项目源代码根目录,即和cmakelists.txt同级目录下创建app_win32.rc文件,内容如下
IDI_ICON1 ICON DISCARDABLE "favicon.ico"
2.cmake中add_executable命令后包含app_win32.rc文件,如
add_executable(${PROJECT_NAME}
"src/main.cpp"
"app_win32.rc"
)
3.将favicon.ico文件放入同级目录
4.重新执行cmake并编译项目,即可看到exe文件显示设置的ico图标
任务栏图标
1.多个窗口任务栏图标一致
QGuiApplication app(argc, argv);
app.setWindowIcon(QIcon(":/images/favicon.ico"));
主函数向上面那样设置就好,正常启动程序,所有的窗口任务栏都会显示上面设置的图标
2.多个窗口任务栏图标不一致
qml中给window设置objectName
QWindow *mainWindow = engine.rootObjects().first()->findChild<QWindow *>("mainWindowObject");;
if (mainWindow) {
mainWindow->setIcon(QIcon(":/images/favicon.ico"));
qDebug() << "main window icon is set";
mainWindow->show();
}
else{
qDebug() << "main window icon is not set";
return app.exec();
}
QWindow *loginWindow = engine.rootObjects().first()->findChild<QWindow *>("loginWindowObject");
if (loginWindow) {
loginWindow->setIcon(QIcon(":/images/xiaoxin.ico"));
qDebug() << "login window icon is set";
}
else{
qDebug() << "login window icon is not set";
return app.exec();
}
启动程序,可以看到两个窗口显示不一样的图标
注意
必须是ico格式,并且使用:/开头的路径格式