QT5:设置图标

一、使用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();
    //}
    
发布了56 篇原创文章 · 获赞 5 · 访问量 7455

猜你喜欢

转载自blog.csdn.net/forchoosen/article/details/103041256
Qt5