- 博客主页: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 体积就会⽐较⼤, 程序运⾏消耗的内存也会增⼤, 程序编译的时间也会显著增加.文章来源:https://www.toymoban.com/news/detail-851814.html
文章来源地址https://www.toymoban.com/news/detail-851814.html
到了这里,关于【Qt 学习笔记】QWidget的windowTitle属性 | windowIcon属性 | qrc文件机制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!