【Qt 学习笔记】QWidget的windowTitle属性 | windowIcon属性 | qrc文件机制

本文详细介绍了Qt中的QWidget类的windowTitle和windowIcon属性,包括其功能、API使用方法和代码示例。此外,还探讨了qrc文件在资源管理中的应用,以及其优缺点。
摘要由CSDN通过智能技术生成

  • 博客主页:Duck Bro 博客主页
  • 系列专栏:Qt 专栏
  • 关注博主,后期持续更新系列文章
  • 如果有错误感谢请大家批评指出,及时修改
  • 感谢大家点赞👍收藏⭐评论✍

QWidget的windowTitle属性

文章编号:Qt 学习笔记 / 17


一、windowTitle属性

1. 简介

windowTitle属性是一种在用户界面中显示窗口的标题的属性。它可以用来设置窗口的标题栏文本,以便用户能够识别窗口的内容或功能。windowTitle属性通常在窗口的创建或初始化过程中设置,并且可以随时被修改。

2. API

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

提及:上述设置操作针对不同的 widget 可能会有不同的⾏为.
如果是顶层 widget (独⽴窗⼝), 这个操作才会有效.
如果是⼦ widget, 这个操作⽆任何效果.

3. 代码示例

3.1 示例1:修改窗口标题

在这里插入图片描述
文件代码:

//widget.cpp

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    this->setWindowTitle("修改窗口标题");
}

Widget::~Widget()
{
    delete ui;
}

二、windowIcon属性

1. 简介

windowIcon属性是用于设置应用程序窗口图标的属性。该属性可以指定一个图像文件作为窗口的图标,当应用程序运行时,该图像将显示在窗口的标题栏、任务栏和任务管理器中。

2. API

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

3. 代码示例

3.1 示例1:设置窗口图标
  • 先在 D 盘中放⼀个图⽚, 名字为 duck.jpg
    在这里插入图片描述

  • 修改 widget.cpp,这里使用绝对路径的方式载入图片
    在这里插入图片描述

  • 运⾏程序, 可以看到窗⼝图标已经成为上述图⽚
    在这里插入图片描述

  • 同时任务栏中程序图标也随之改变了
    在这里插入图片描述

文件代码:

//widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QIcon>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    //创建图标文件
    QIcon icon("d:/image/duck.jpg");
    //设置图标
    this->setWindowIcon(icon);
}

Widget::~Widget()
{
    delete ui;
}

4. 绝对路径和相对路径

在上述代码中使用绝对路径的方式,将图片加载到程序中

在实际开发中, 我们⼀般不会在代码中通过绝对路径引⼊图⽚. 因为我们⽆法保证程序发布后, ⽤⼾的电脑上也有同样的路径.

如果使⽤相对路径, 则需要确保代码中的相对路径写法和图⽚实际所在的路径匹配 (⽐如代码中写作 “./image/rose.jpg”, 就需要在当前⼯作⽬录中创建 image ⽬录, 并把 rose.jpg 放进去).

绝对路径: 以盘符(windows)或者以 / (Linux) 开头的路径.
相对路径: 以 . (表⽰当前路径) 或者 以 … (表⽰当前路径上级路径) 开头的路径. 其中 . 经常也会省略. 相对路径的前提是需要明确 “当前⼯作⽬录”.

4.1 绝对路径

绝对路径是指一个文件或文件夹在文件系统中的完整的路径,包含所有的父文件夹。绝对路径以根目录为起点,可以唯一地确定一个文件或文件夹的位置。

在Windows系统中,绝对路径通常以驱动器符号(例如C:\)作为起点,后面跟着一系列的文件夹名称。例如,C:\Users\Username\Documents\file.txt就是一个在Windows系统中的绝对路径。

4.2 相对路径

相对路径是指文件或目录相对于当前工作目录的路径。在文件系统中,每个文件和目录都有一个唯一的路径来确定其位置。绝对路径是指从文件系统的根目录开始的完整路径,而相对路径是从当前工作目录开始的路径。

相对路径可以使用一些特定的符号来表示相对于当前目录的位置。以下是一些常见的符号:

  • " . ":代表当前目录。
  • " … ":代表上一级目录。
  • " / ":代表根目录。

例如,假设当前工作目录是/home/user/,而文件example.txt位于/home/user/documents/目录中,那么使用相对路径可以表示为documents/example.txt。反之,如果使用绝对路径,可以表示为/home/user/documents/example.txt

相对路径的使用可以使路径更简洁,便于移植性和可维护性。但是,相对路径的可读性可能较差,因为它们依赖于当前工作目录。换句话说,如果当前工作目录发生变化,相对路径可能会指向不正确的位置。


三、qrc 文件

1. qrc文件介绍

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

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

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

这种资源管理机制并⾮ Qt 独有, 很多开发框架都有类似的机制. 例如 Android 的 Resources
和 AssetManager 也是类似的效果.

2. 步骤示例

  • 右键项目, 创建⼀个 Qt Resource File (qrc 文件), ⽂件名随意起(不要带中文), 此处叫做
    resource.qrc
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 在 qrc 编辑器中, 添加前缀.
    在这里插入图片描述

此处我们前缀设置成 / 即可. 所谓的前缀, 可以理解成 “目录” . 这个前缀决定了后续我们如何在代码中访问资源.

  • 在 资源编辑器 中, 点击 add Files 添加资源⽂件. 此处我们需要添加的是 rose.jpg
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

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

  • 在代码中使⽤ duck.jpg
    在这里插入图片描述

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

  • 使用 : 作为开头, 表示从 qrc 中读取资源.
  • / 是上面配置的前缀
  • rose.jpg 是资源的名称
    需要确保代码中编写的路径和添加到 qrc 中资源的路径匹配. 否则资源⽆法被访问 (同时也不会有报错提示).
  • 运⾏程序, 可以看到图标已经能正确设置.
    在这里插入图片描述

文件代码:

#include "widget.h"
#include "ui_widget.h"
#include<QIcon>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    QIcon icon(":/duck.jpg");
    this -> setWindowIcon(icon);

}

Widget::~Widget()
{
    delete ui;
}

3. qrc文件机制的优缺点

上述 qrc 这⼀套资源管理⽅案, 优点和缺点都很明显.
优点: 确保了图⽚, 字体, 声⾳等资源能够真正做到 “⽬录⽆关”, ⽆论如何都不会出现资源丢失的情况.
缺点: 不适合管理体积⼤的资源. 如果资源⽐较⼤ (⽐如是⼏个 MB 的⽂件), 或者资源特别多,⽣成的最终的 exe 体积就会⽐较⼤, 程序运⾏消耗的内存也会增⼤, 程序编译的时间也会显著增加.


在这里插入图片描述

  • 22
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Duck Bro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值