Qt程序图标更改以及程序打包

Qt程序图标更改以及程序打包

  • 1 windows
    • 1.1 cmake
      • 1.1.1 修改.exe程序图标
      • 1.1.2 修改显示页面左上角图标
    • 1.2 qmake
      • 1.2.1 修改.exe程序图标
      • 1.2.2 修改显示页面左上角图标
  • 2 程序打包
    • 2.1 MinGW
    • 2.2 Visual Studio
  • 3 参考链接

1 windows

1.1 cmake

1.1.1 修改.exe程序图标

  1. 获得一个logo.ico图标(假设这个ico图标的名称为logo)
    在这里插入图片描述

  2. 创建一个名称为logo.txt文件,在文件中添加下面一行文本

    DI_ICON1     ICON    DISCARDABLE     "logo.ico"
    

    然后将.txt修改为.rc

  3. 在QT工程中添加资源文件,并将logo.icologo.rc添加到资源文件中,具体步骤是右键点击02-PictureToIcon=>添加新文件=>创建QT Resource File=>右键点击资源文件images.qrc=>选择添加现有文件,添加logo.ico和logo.rc

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 修改cMakeLists内容
    if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
    qt_add_executable(02-PictureToIcon
        MANUAL_FINALIZATION
        ${PROJECT_SOURCES}
        images.qrc
    )
    
    在上面代码中添加资源文件路径images/logo.rc
    if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
    qt_add_executable(02-PictureToIcon
        MANUAL_FINALIZATION
        ${PROJECT_SOURCES}
        images.qrc
        images/logo.rc
    )
    
  2. 重新编译即可修改02-PictureToIcon.exe程序图标
    在这里插入图片描述

1.1.2 修改显示页面左上角图标

  1. 首先按照1.1.1中的方法将logo.ico添加到资源文件中
  2. 在ui界面进行设置,具体步骤为点击黑色下三角=>选择资源文件=>选择logo.ico
    在这里插入图片描述
  3. 重新运行即可,可以看到左上角变为了logo.ico图标了
    在这里插入图片描述

1.2 qmake

1.2.1 修改.exe程序图标

按照1.1.1中的方法将logo.ico添加到资源文件中,然后在01-HelloWorld.pro中的最后添加下面代码,images是创建的资源文件的名字

RC_ICONS = images/logo.ico

添加之后必须对这个项目进行重新构建
在这里插入图片描述
然后直接运行,可以从结果中看到,01-HelloWorld.exe的程序图标已经改变
在这里插入图片描述

1.2.2 修改显示页面左上角图标

这个实现过程与1.1.2一样
在这里插入图片描述

2 程序打包

2.1 MinGW

  1. 在使用MinGW进行编译运行,生成.exe文件后,经.exe移动到一个新的文件夹中
    在这里插入图片描述

  2. 然后打开QT 6.7.2 (MinGW 11.2.0 64-bit),类似于cmd的方式进入到上面的文件中
    在这里插入图片描述

    在这里插入图片描述

  3. 然后直接运行下面代码,即打包完成

    windeployqt 02-PictureToIcon.exe
    
  4. 可以直接点击02-PictureToIcon.exe,运行程序
    在这里插入图片描述

2.2 Visual Studio

  1. 在使用MSVC2022进行编译运行,生成.exe文件后,经.exe移动到一个新的文件夹中
  2. 然后打开QT 6.7.2 (MSVC 2019 64-bit),剩下的步骤跟2.1中一样,最终的结果如下图所示。
    在这里插入图片描述

3 参考链接

  1. 2024最新QT图形界面开发教程,这个是B站视频,里面包括qt程序打包,制作合并包,制作安装包等入门教程,是很好的
  2. Qt程序图标更改以及打包发布生成可独立运行的exe文件
  3. cmake管理qt项目,设置windows和linux下生成的程序图标,以及任务栏显示设置的图标

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/801371.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】进程控制的详细介绍

前言 在此之前,我们学过进程的概念,进程的状态,进程地址空间等一系列进程相关的问题。本章我们继续学习进程,我们要来学习一下进程的控制,关于进程等待,等问题。 目录 1.再次认识Fork函数1.1 fork()之后操…

搜集日志。

logstash 负责: 接收数据 input — 解析过滤并转换数据 filter(此插件可选) — 输出数据 output input — decode — filter — encode — output elasticsearch 查询和保存数据 Elasticsearch 去中心化集群 Data node 消耗大量 CPU、内存和 I/O 资源 分担一部分…

数据结构进阶:使用链表实现栈和队列详解与示例(C, C#, C++)

文章目录 1、 栈与队列简介栈(Stack)队列(Queue) 2、使用链表实现栈C语言实现C#语言实现C语言实现 3、使用链表实现队列C语言实现C#语言实现C语言实现 4、链表实现栈和队列的性能分析时间复杂度空间复杂度性能特点与其他实现的比较…

启动yarn后,其他节点没有NodeManager

写在前面: 这个问题虽然折磨了我两天,但是原因特别蠢,可能与各位不一定一样,我是因为ResourceManager的节点的"/etc/hadoop/workers"文件没有配置好(没有配hadoop102和hadoop104),但排…

MySQL日期和时间相关函数

目录 1. 获取当前时间和日期 2. 获取当前日期 3. 获取当前时间 4. 获取单独的年/月/日/时/分/秒 5. 添加时间间隔 date_add ( ) 6. 格式化日期 date_format ( ) 7. 字符串转日期 str_to_date () 8. 第几天 dayofxx 9. 当月最后一天 last_day ( ) 10. 日期差 datedif…

Java中的线程同步

为什么要实现线程同步 线程的同步是为了保证多个线程按照特定的顺序、协调地访问共享资源,避免数据不一致和竞争条件等问题。 线程同步的方式 1.synchronized关键字 (1)同步方法 public synchronized void save(){} 注: syn…

网络编程+文件上传操作的理解

前言: 概述:在网络通信协议下,不同计算机上运行的程序,进行数据传输 比如:通信,视频通话,网游,邮件等 只要是计算机之间通过网络进行数据传输,就有网络编程的存在 (下面单纯是在Java基础中了解了一下网络编程,感觉理…

如何保证数据库和redis的数据一致性

1、简介 在客户端请求数据时,如果能在缓存中命中数据,那就查询缓存,不用在去查询数据库,从而减轻数据库的压力,提高服务器的性能。 2、问题如何保证两者的一致性 先更新数据库在删除缓存 难点:如何保证…

Classifier-Free Guidance (CFG) Scale in Stable Diffusion

1.Classifier-Free Guidance Scale in Stable Diffusion 笔记来源: 1.How does Stable Diffusion work? 2.Classifier-Free Diffusion Guidance 3.Guide to Stable Diffusion CFG scale (guidance scale) parameter 1.1 Classifier Guidance Scale 分类器引导是…

vite配置环境变量和使用,配置正确后import.meta.env.VITE_APP_BASE_URL编译报错的解决方法

一、配置: 1.新增四个环境文件 .env.development .env.test .env.production .env.pre 内容为不同环境的不同参数变量必须以VITE_APP开头,如: #接口地址 VITE_APP_BASE_URL"¥¥¥¥&#xff…

嵌入式人工智能(6-树莓派4B按键输入控制LED)

1、按键 按键的原理都是一样,通过按键开关的按下导通,抬起断开的情况,GPIO引脚来检测其是否有电流流入。GPIO有input()方法,对于GPIO引脚检测电流,不能让其引脚悬空,否则引脚会受周边环境电磁干扰产生微弱…

获取欧洲时报中国板块前新闻数据(多线程版)

这里写目录标题 一.数据获取流程二.获取主页面数据并提取出文章url三.获取文章详情页的数据并提取整体代码展示 一.数据获取流程 我们首先通过抓包就能够找到我们所需数据的api 这里一共有五个参数其中只有第一个和第五个参数是变化的第一个参数就是第几页第五个是一个由时…

HCNA ICMP:因特网控制消息协议

ICMP:因特网控制消息协议 前言 Internet控制报文协议ICMP是网络层的一个重要协议。ICMP协议用来在网络设备间传递各种差错和控制信息,他对于手机各种网络信息、诊断和排除各种网络故障有至关重要的作用。使用基于ICMP的应用时,需要对ICMP的工…

中介者模式(行为型)

目录 一、前言 二、中介者模式 三、总结 一、前言 中介者模式(Mediator Pattern)是一种行为型设计模式,又成为调停者模式,用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地互相引用,从而使其耦合…

防火墙双机热备(接上一个NAT实验)

一、实验拓扑 二、实验需求 1、对现有网络进行改造升级,将当个防火墙组网改成双机热备的组网形式,做负载分担模式,游客区和DMZ区走FW3,生产区和办公区的流量走FW1 2、办公区上网用户限制流量不超过100M,其中销售部人员…

【深度学习】基于深度学习的模式识别基础

一 模式识别基础 “模式”指的是数据中具有某些相似特征或属性的事物或事件的集合。具体来说,模式可以是以下几种形式: 视觉模式 在图像或视频中,模式可以是某种形状、颜色组合或纹理。例如,人脸、文字字符、手写数字等都可以视…

【边缘计算网关教程】8.ModbusTCP采集存储Influxdb

前景回顾-【边缘计算网关教程】7.Modbus协议转MQTT协议-CSDN博客 需求概述 💡注:使用Influxdb数据库节点,需要插上micro sd卡才可以 本章节主要实现一个流程:EG8200每10秒采集一次Modbus TCP数据存入Influxdb数据库,并且每分钟…

[日进斗金系列]用码上飞解决企微开发维修管理系统的需求

前言: 今天跟大家唠唠如何用小money生 大money的方法,首先我们需要准备一个工具。 这个工具叫码上飞CodeFlying,它是目前国内首发的L4级自动化智能软件开发平台。 它可以在短时间内,与AI进行几轮对话就能开发出一个可以解决实际…

pytorch学习(六):卷积层的使用

卷积函数的概念 卷积核从输入特征图的左上角开始,按照设定的步长(Stride)滑动。步长决定了卷积核每次滑动的像素数,这里我们假设步长 s1。在每次滑动时,卷积核与输入特征图对应位置的元素相乘,然后将这些乘…

ENSP中VLAN的设置

VLAN的详细介绍 VLAN(Virtual Local Area Network)即虚拟局域网,是一种将一个物理的局域网在逻辑上划分成多个广播域的技术。 以下是关于 VLAN 的一些详细介绍: 一、基本概念 1. 作用: - 隔离广播域&#xff1a…