【Qt】修改窗口的标题和图标

  以下操作仅对顶层 widget(独⽴窗口),有效。

修改窗口的标题

一.windowTitle属性

1.概念

是一种在用户界面中显示窗口的标题的属性。它可以用来设置窗口的标题栏文本。

2.API

API说明
windowTitle()获取到控件的窗⼝标题.
setWindowTitle(const QString& title)设置控件的窗⼝标题.

3.代码示例

eg:设置窗⼝标题

widget.cpp代码:

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);this->setWindowTitle(QStringLiteral("我自定义的标题"));
}Widget::~Widget()
{delete ui;
}

运行:

结果:

注:设置标题时使用中文,可能会在运行时出现乱码

可以使用 QStringLiteral 宏创建 QString 类型的字符串.

eg:setWindowTitle(QStringLiteral(“XXXX”));


修改窗口的图标

二.windowIcon属性

1.概念

是一种在用户界面中显示窗口的图标的属性。它可以用来设置窗口的图标。

2.API

API说明
windowIcon()获取到控件的窗⼝图标. 返回 QIcon 对象.
setWindowIcon(const QIcon& icon)设置控件的窗⼝图标.

3.代码示例

eg:以绝对路径方式设置窗口图标

(1)先在 D 盘中放⼀个图⽚, 名字为 dog.jpg

(2)修改 widget.cpp,这里使用绝对路径的方式载入图片

(3)运⾏程序, 可以看到窗⼝图标已经成为上述图⽚

同时,程序在任务栏的图标也改变了:


实际开发中,我们一般不会在代码中通过绝对路径的方式引入图片,因为我们不能保证程序发布后,用户电脑上也有相同的路径。

而如果使用相对路径的话,我们需要确保代码中的相对路径与图片实际所在路径相匹配

补充1:

绝对路径:以盘符(windows)或者以 / (Linux) 开头的路径.

 相对路径:以. (表⽰当前路径)或者以.. (表⽰当前路径上级路径)开头的路径.其中. 经常也 会省略.相对路径的前提是需要明确"当前⼯作⽬录".

补充二:

对于Qt程序来说当前⼯作⽬录可能是变化的.⽐如通过 Qt Creator 运⾏的程序,当前⼯作⽬录是项⽬ 的构建⽬录;直接双击 exe 运⾏, ⼯作⽬录则是 exe 所在⽬录.

所谓构建⽬录,是和 Qt 项⽬并列的, 专⻔⽤来放⽣成的临时⽂件和最终 exe 的⽬录.

   为了避免路径对程序寻找图片资源的影响,Qt引入qrc文件

4.qrc文件(重点)

4.1.概念

qrc⽂件是⼀种XML格式的资源配置⽂件,它⽤XML记录硬盘上的⽂件和对应的随意指定的资 源名称.应⽤程序通过资源名称来访问这些资源.

在Qt开发中,可以通过将资源⽂件添加到项⽬中来⽅便地访问和管理这些资源.这些资源⽂件 可以位于qrc⽂件所在⽬录的同级或其⼦⽬录下.

在构建程序的过程中,Qt 会把资源⽂件的⼆进制数据转成 cpp 代码,编译到 exe中.从⽽使依 赖的资源变得"路径⽆关".

4.2.代码示例

通过 qrc 管理图⽚作为图标

 1)右键项⽬,创建⼀个 Qt Resource File (qrc ⽂件),⽂件名随意起(不要带中⽂),此处叫做resource.qrc

2)在 qrc 编辑器中,添加前缀.

此处我们前缀设置成 / 即可.

 所谓的前缀,可以理解成 "⽬录" .这个前缀决定了后续我们如何在代码中访问资源.

3)在 资源编辑器 中,点击 add Files 添加资源⽂件.此处我们需要添加的是dog.jpg

注意:添加的⽂件必须是在 qrc ⽂件的同级⽬录,或者同级⽬录的⼦⽬录中.因此我们需要把之前 D盘 中的dog.jpg复制到上述⽬录中

添加完毕后,可以在 资源编辑器 中看到添加好的⽂件

4)在代码中使⽤dog.jpg

#include "widget.h"
#include "ui_widget.h"
#include <QIcon>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 访问到 dog.jpg 资源QIcon icon(":/dog.jpg");// 设置图标this->setWindowIcon(icon);
}Widget::~Widget()
{delete ui;
}

注意上述路径的访问规则:

 • 使⽤: 作为开头, 表⽰从 qrc 中读取资源.

 • / 是上⾯配置的前缀

 • dog.jpg 是资源的名称, 需要确保代码中编写的路径和添加到 qrc 中资源的路径匹配.否则资源⽆法被访问(同时也不会有报错 提⽰).

5)运行程序,可以看到图标已经被修改

注:

上述代码其实就是通过 unsigned char数组,把dog.jpg中的每个字节都记录下来.这些代码会被编译 到exe中.后续⽆论exe被复制到哪个⽬录下,都确保能够访问到该图⽚资源.

4.3.qrc机制的优缺点

上述qrc这⼀套资源管理⽅案,优点和缺点都很明显.

优点:确保了图⽚,字体,声⾳等资源能够真正做到"⽬录⽆关",⽆论如何都不会出现资源丢失 的情况.

 缺点:不适合管理体积⼤的资源.如果资源⽐较⼤,⽣成的最终的exe体积就会⽐较⼤,程序运⾏消耗的内存也会增⼤,程序编译的时间也会显著 增加.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

10 BERT

目录 1 综述 1.1 BERT的核心思想 1.2 BERT的关键技术&#xff1a;预训练阶段 1.3 微调阶段 2 BERT的架构 2.1 输入处理 3. 特征选择/学习模块 BERT 的自注意力过程 4. 预训练任务&#xff1a;同时进行 4.1 Next Sentence Prediction (NSP) 4.2 Masked Language Model…

基于微信小程序+SpringBoot+Vue的网络安全科普系统(带1w+文档)

基于微信小程序SpringBootVue的网络安全科普系统(带1w文档) 基于微信小程序SpringBootVue的网络安全科普系统(带1w文档) 优质的网络安全科普系统不仅可以单纯的满足工作人员管理的日常工作需求&#xff0c;还可以满足用户的需求。可以降低工作人员的工作压力&#xff0c;提高效…

rust 初探 -- 常用的集合

rust 初探 – 常用的集合 Vector 存储在堆内存上的数据&#xff0c;运行时可以动态变大或者变小。 Vec 特性&#xff1a; 由标准库提供&#xff0c;可以存储多个相同类型的值&#xff0c;并且值在内存中连续存放 Vector 的创建 fn main() {// Vec::new()let v: Vec<i32…

Mojo模型的自动调参:深度学习优化的新境界

Mojo模型的自动调参&#xff1a;深度学习优化的新境界 深度学习模型的参数调优是提高模型性能的关键步骤之一&#xff0c;但同时也是一个耗时且复杂的过程。Mojo模型作为一个先进的深度学习框架&#xff0c;其设计理念包含了自动化调参的概念&#xff0c;以简化模型训练流程并…

2024.7.29 作业

1> 写一个日志文件&#xff0c;将程序启动后&#xff0c;每一秒的时间写入到文件中 #include <myhead.h> int main(int argc,const char *argv[]) {FILE *fp NULL;if((fpfopen("./log.txt","r"))NULL) {perror("open error1");return…

解决 Git 访问 GitHub 时的 SSL 错误

引言 在使用 Git 进行版本控制时&#xff0c;我们可能会遇到各种网络相关的错误。其中一种常见的错误是 SSL 连接问题&#xff0c;这会导致 Git 无法访问远程仓库。本文将介绍一个具体的错误 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 0&#xff0c;以及如何通过禁用 SSL 证…

Python数值计算(1)

准备总结一下通过Python进行数值计算的环境&#xff0c;先说一下数值计算的基本语法和库。 1.基本运算 Python中提供基本运算符&#xff0c;常见的加减乘除&#xff0c;唯一需要注意的是除法&#xff0c;整数除法和浮点数除法不一样。 一般除法/&#xff0c;无论参与运算的数…

【嵌入式英语教程--3】C语言中的基本数据类型

C语言中的基本数据类型 英文原文 In the C programming language, basic data types form the building blocks of any program. These include int, float, char, and bool. The int type is used for integer values, float for floating-point numbers, char for single c…

相机拍摄如何正确曝光

不同场景下的曝光思路 数码时代&#xff0c;我们并不需要准确曝光&#xff0c;我们只需要用单张或者多张照片&#xff0c;记录下场景的全部亮度信息直方图可以辅助我们确认&#xff0c;是否完整记录下了场景的亮度信息正常光比环境&#xff0c;提倡“向右曝光”。大光比环境&a…

通信系统的均衡技术

1、摘要 在通信系统中&#xff0c;信号从发送端发出&#xff0c;经过信道&#xff0c;到达接收端&#xff0c;而在传输的过程中&#xff0c;信号会发生失真&#xff0c;产生失真的原因有很多&#xff0c;包括阻抗不匹配&#xff0c;干扰等。为了优化信号质量&#xff0c;需要进…

【PyTorch笔记】训练时显存一直增加到 out-of-memory?真相了!

最近用 Pytorch 训模型的过程中&#xff0c;发现总是训练几轮后&#xff0c;出现显存爆炸 out-of-memory 的问题&#xff0c;询问了 ChatGPT、查找了各种文档。。。 在此记录这次 debug 之旅&#xff0c;希望对有类似问题的小伙伴有一点点帮助。 问题描述&#xff1a; 训练过…

mysql的唯一索引和普通索引有什么区别

在MySQL中&#xff0c;唯一索引&#xff08;UNIQUE Index&#xff09;和普通索引&#xff08;普通索引&#xff0c;也称为非唯一索引&#xff09;有一些关键的区别。以下是它们的比较以及性能分析&#xff1a; 唯一索引与普通索引的区别 唯一性&#xff1a; 唯一索引&#xff…

也来聊一聊反复开关空调是否更费电

文章目录 为了制造噱头而刻意开展的毫无实际价值的实验空调制冷的基本原理空调主要耗电部件分析空调主要耗电阶段分析启动阶段&#xff1a;瞬时功率较高&#xff0c;但持续时间较短制冷运行阶段&#xff1a;压缩机持续运行&#xff0c;耗电量最大温度达到设定值后的阶段&#x…

深入探索非线性数据结构:树与图的世界

在数据结构的广阔天地中&#xff0c;非线性结构以其独特的逻辑关系和广泛的应用场景&#xff0c;成为计算机科学领域的重要组成部分。其中&#xff0c;树和图作为两种典型的非线性数据结构&#xff0c;不仅深刻影响了算法的设计与分析&#xff0c;也广泛应用于各种实际问题的解…

基于tkinter的学生信息管理系统之登录界面和主界面菜单设计

目录 一、tkinter的介绍 二、登陆界面的设计 1、登陆界面完整代码 2、部分代码讲解 3、登录的数据模型设计 4、效果展示 三、学生主界面菜单设计 1、学生主界面菜单设计完整代码 2、 部分代码讲解 3、效果展示 四、数据库的模型设计 欢迎大家进来学习和支持&#xff01…

灯具外贸公司用什么企业邮箱好

灯具外贸公司面对海外市场的推广、产品销售、客户沟通、市场信息收集等多重需求&#xff0c;选择一个合适的企业邮箱显得尤为重要。本文将介绍灯具外贸公司为什么应选择Zoho Mail企业邮箱&#xff0c;并详细探讨其优势和功能。 一、公司背景 广东省深圳市光明新区&#xff0c…

持久化存储:Mojo模型中模型保存与加载的艺术

持久化存储&#xff1a;Mojo模型中模型保存与加载的艺术 在机器学习项目中&#xff0c;模型的持久化存储是一个关键环节&#xff0c;它允许我们将训练好的模型保存下来&#xff0c;并在需要时重新加载使用。Mojo模型&#xff0c;作为一个虚构的高级机器学习框架&#xff0c;支…

Redis 安装和数据类型

Redis 安装和数据类型 一、Redis 1、Redis概念 redis 缓存中间件&#xff1a;缓存数据库 nginx web服务 php 转发动态请求 tomcat web页面&#xff0c;也可以转发动态请求 springboot 自带tomcat 数据库不支持高并发&#xff0c;一旦访问量激增&#xff0c;数据库很快就…

vTESTstudio中如何添加DLL文件?

文章目录 一、CANoe添加DLL二、vTESTstudio中添加DLL1.手动添加2.代码添加 一、CANoe添加DLL 在CANoe中添加DLL的路径如下图&#xff0c;在Simulation Setup中选择需要添加的节点&#xff0c;右键选择Configuration进行添加DLL。 二、vTESTstudio中添加DLL 1.手动添加 在打…

java中 VO DTO BO PO DAO

VO、DTO、BO、PO、DO、POJO 数据模型的理解和实际使用_vo dto bo-CSDN博客 深入理解Java Web开发中的PO、VO、DTO、DAO和BO概念_java dto dao-CSDN博客