文章目录
一、使用Vs+Qt编程如何设置图标
1 设置运行时的图标(系统底部的任务栏、程序的标题栏)
1.1 方法一
- 用【QT Designer】打开主窗口的UI文件
- 设置主窗口类的windowIcon属性
1.2 方法二
- 在QT项目中添加图片资源
- 在主窗口类的构造器中设置图标 setWindowIcon()
PEScan::PEScan(QWidget* parent) : QMainWindow(parent) { //添加资源图片(一定要png格式??) QIcon icon; icon.addFile(":/PEScan/icon/logo.png"); //.qrc文件中的资源路径 this->setWindowIcon(icon); ui.setupUi(this); }
1.3 打包发布时,要把图标文件一起打包
- 如果调试时有“运行图标”,而直接运行exe时没有图标,说明没有把图标文件放到exe目录。
2 设置exe文件的图标
- 项目-右键-添加-“资源”-引用-选择一个“ICON”格式的图片文件
- 随后会自动生成一个*.rc文件、一个resource.h文件
- 重新生成项目,可以看到exe文件的图标发生变化了。
- 如果在重新生成项目时提示【无法解析的外部符号 WinMainCRTStartup】那么就需要修改QT项目的Main函数为WinMain的形式。
#pragma once #include "PEScan.h" #include <QtWidgets/QApplication> //为了生成exe文件图标,将QT的main函数写为WinMain的形式 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { #ifdef _DEBUG int argc=0; //debug版本需要初始化为0 #else int argc=1; //release版本需要初始化为1 #endif char* argv[] = { 0 }; QApplication a(argc, argv); PEScan w; w.show(); return a.exec(); } //int main(int argc, char *argv[]) //{ // QApplication a(argc, argv); // PEScan w; // w.show(); // return a.exec(); //}