当前位置: 首页 > news >正文

【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体积就会⽐较⼤,程序运⾏消耗的内存也会增⼤,程序编译的时间也会显著 增加.

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • PHP西陆招聘求职系统小程序源码
  • chrome 接口请求等待时间(installed 已停止)过长问题定位
  • 实现代码灵活性:用Roslyn动态编译和执行存储在数据库中的C#代码
  • 论文解读:DiAD之SG网络
  • win 自动的杀毒软件,误报病毒情况 如何排除
  • jmeter录制
  • ESP32无线WiFi蓝牙双模方案加速设备联网创新,启明云端乐鑫代理商
  • Java小白入门到实战应用教程-switch case条件语句
  • 图片等比例缩放方案
  • 2235234234
  • 人工智能幻觉的成因分析和解决措施的挑战
  • Flink CDC基本概念以及MySQL同步到MySQL
  • 【C++】C++11新特性(1)
  • SpringCloud03
  • 深入解析Kylin的元数据管理:架构与实践
  • 【5+】跨webview多页面 触发事件(二)
  • 2017-09-12 前端日报
  • Babel配置的不完全指南
  • Flannel解读
  • java8-模拟hadoop
  • JavaScript服务器推送技术之 WebSocket
  • Java到底能干嘛?
  • Laravel核心解读--Facades
  • Linux快速复制或删除大量小文件
  • magento 货币换算
  • nginx 负载服务器优化
  • oschina
  • ucore操作系统实验笔记 - 重新理解中断
  • 编写符合Python风格的对象
  • 第十八天-企业应用架构模式-基本模式
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 聊聊redis的数据结构的应用
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 首页查询功能的一次实现过程
  • 思考 CSS 架构
  • 通过git安装npm私有模块
  • 与 ConTeXt MkIV 官方文档的接驳
  • 第二十章:异步和文件I/O.(二十三)
  • 移动端高清、多屏适配方案
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​1:1公有云能力整体输出,腾讯云“七剑”下云端
  • #AngularJS#$sce.trustAsResourceUrl
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (LeetCode 49)Anagrams
  • (ZT)一个美国文科博士的YardLife
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (二)springcloud实战之config配置中心
  • (附源码)c#+winform实现远程开机(广域网可用)
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (三)mysql_MYSQL(三)
  • (循环依赖问题)学习spring的第九天
  • (一) springboot详细介绍