【Qt学习】Qlabel 的核心属性 与 代码实例

news2024/12/24 11:34:20

文章目录

  • 1. 介绍
  • 2. 显示文本
  • 3. 显示图片
  • 4. 设置文本对齐方式
  • 5. 设置自动换行、边距、缩进
  • 6. 设置伙伴

1. 介绍

在Qt学习的专题中,我们以及多次使用过QLabel,作用就是用于显示文本和图片;

QLabel有以下 核心属性:

好的,以下是QLabel的核心属性以表格形式列举出来:

属性描述
TextQLabel显示的文本内容。可以使用setText()方法设置文本。
PixmapQLabel显示的图片。可以使用setPixmap()方法设置图片。
Alignment文本或图片在QLabel中的对齐方式。可以使用setAlignment()方法设置对齐方式。
Word Wrap是否启用文本自动换行功能。可以使用setWordWrap()方法设置是否自动换行。
MarginQLabel的边距,即文本或图片与QLabel边框之间的距离。可以使用setMargin()方法设置边距。
Size ConstraintQLabel的尺寸约束。可以使用setSizePolicy()方法设置尺寸约束。
ToolTip鼠标悬停在QLabel上时显示的提示信息。可以使用setToolTip()方法设置提示信息。
Accessible NameQLabel的无障碍名称,用于辅助技术。可以使用setAccessibleName()方法设置无障碍名称。

2. 显示文本

我们用简单的代码展示QLabel:
代码示例

我们在ui界面创建3个Label控件:

在这里插入图片描述

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
	ui->label_1->setTextFormat(Qt::PlainText);
	ui->label_1->setText("这是一段纯文本");
	
	ui->label_2->setTextFormat(Qt::RichText);
	ui->label_2->setText("<b> 这是一段富文本 </b>");
	
	ui->label_3->setTextFormat(Qt::MarkdownText);
	ui->label_3->setText("## 这是一段 markdown 文本");}

效果如下:

在这里插入图片描述


3. 显示图片

此前我们使用过QPushButton设置图片,实际上并非最优解,QLabel设置图片的效果实际更上一层:

同理我们在ui界面添加一个Label控件,并添加资源文件,将图片导入到资源文件中:

在这里插入图片描述
代码示例

此时着手编写代码:

首先进行:加载图片+将图片设置到QLabel对象+将label铺满屏幕:

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

    // 将QLabel 铺满窗口(等大)
    QRect windowRect = this->geometry(); // 提取窗口geometry属性
    ui->label->setGeometry(0, 0, windowRect.width(), windowRect.height());
    // 加载图片
    QPixmap pixmap(":/Embarrass_smile.png");
    ui->label->setPixmap(pixmap);
    // 启动自动拉伸
    ui->label->setScaledContents(true);
}

随后在widget.h文件中声明resizeEvent函数(用于使图片跟随窗口变化而变化)

void resizeEvent(QResizeEvent *event);

后在widget.cpp文件中实现该函数:

// 当调整窗口大小时,Label跟随调整
void Widget::resizeEvent(QResizeEvent *event)
{
    qDebug() << event->size();
    ui->label->setGeometry(0, 0, event->size().width(), event->size().height());
}

效果展示:

请添加图片描述


4. 设置文本对齐方式

对于一个QLabel控件,我们可以直接在属性面板中在alignment进行文本对齐方式的设置:

在这里插入图片描述
也可以通过代码的方式进行设置:

// 水平居中 垂直居中
ui->label->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);

5. 设置自动换行、边距、缩进

我们首先创建四个Label控件,并将其QFrame中的frameshape属性该位Box:

在这里插入图片描述
随后根据前面介绍提到的属性,进行换行、边距、缩进的设置:

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

    // QLabel设置 对齐方式
    ui->label->setText("一段测试文本");
    ui->label->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);

    // 设置自动换行
    ui->label_2->setText("一段长的测试文本:土豆,上帝赐予人类最宝贵的礼物,世界上最完美的食物,土豆丝好吃,土豆片好吃,土豆块好吃,土豆泥好吃,炸着吃,烤着吃,蒸着吃,煎着吃,都好吃,薯条好吃,薯饼好吃,加孜然好吃,蘸辣椒好吃,焗芝士好吃,怎么样都好吃,哪怕整个煮熟了撒盐都好吃,除了发芽不能吃,没有任何缺陷。");
    ui->label_2->setWordWrap(true);

    // 设置边距
    ui->label_3->setText("一段长的测试文本:(尖叫)(扭曲)(阴暗的爬行) (爬行)(扭动)(阴暗地蠕动)(翻滚)(激烈地爬动)(扭曲)(痉挛)(嘶吼)(蠕动)(阴森的低吼)(爬行)(分裂)(走上岸)(扭动)(痉挛)(蠕动)(扭曲的行走)(不分对象攻击)");
    ui->label_3->setIndent(50);

    // 设置缩进
    ui->label_4->setText("一段长的测试文本:正确的,直接的,中肯的,雅致的,客观的,完整的,立体的,全面的,合理的,辩证的,形而上学的,雅俗共赏的,一针见血的,直击要害的,批判性的,针对性的,创造性的,发散性的,具有独特意义的,客观的,合理的,明晰的,真实的,辩证的,深刻的,通达的,优美的,巧妙的,精辟的,雅正的,机智的,全面的,明白晓畅的,不偏不倚的,恰如其分的,滴水不漏的,不容质疑的,切中要害的,淋漓尽致的,深谙事理的,真知灼见的,发蒙振聩的,微言大义的,金声玉振的。");
    ui->label_4->setMargin(50);
}

效果如下:
在这里插入图片描述


6. 设置伙伴

如在介绍中所提到的butty属性,我们在ui界面创建:

在这里插入图片描述

这里我们将选项旁的label设置为 (文本)&A 的形式,后续通过代码设置伙伴后,&A就相当于设置了 alt + A的快捷键。

效果演示:
请添加图片描述
其中&后⾯跟着的字符,就是快捷键,但是呼出快捷键首先需要加上alt键

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

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

相关文章

EasyCVR视频汇聚平台:巧妙解决WebRTC无法播放H.265视频的难题

随着科技的飞速发展&#xff0c;视频监控已经成为现代安全管理不可或缺的一部分&#xff0c;广泛应用于智慧工地、智慧煤矿、智慧工厂、智慧社区和智慧校园等多个领域。在这个过程中&#xff0c;视频编码技术和实时通信技术显得尤为重要。EasyCVR视频汇聚平台&#xff0c;凭借其…

Python中的Request请求重试机制例子解析

在Python中&#xff0c;使用Requests库实现请求的重试机制是一种常见的做法&#xff0c;尤其是在面对不稳定的网络环境或服务时。以下是一些实现重试机制的详细例子&#xff1a; 使用Sessions和HTTPAdapter&#xff1a;Requests库中的Session可以存储跨多个请求的共同设置&…

城市内涝积水监测预警系统应对强降雨挑战

近年以来&#xff0c;我国部分地区频繁遭遇强降雨或持续性降水挑战&#xff0c;城市排水系统不堪重负&#xff0c;内涝问题日益凸显&#xff0c;下穿隧道、立交桥下等低洼路段容易产生大量积水&#xff0c;防洪形势刻不容缓。 为有效应对强降雨带来的挑战&#xff0c;国信华源结…

国内十大物联网平台推荐

随着物联网技术的飞速发展&#xff0c;越来越多的企业和开发者开始探索如何利用这一技术来优化产品、提高效率和创造新的商业模式。在中国&#xff0c;众多的物联网平台如雨后春笋般涌现&#xff0c;它们各具特色&#xff0c;为企业提供了丰富的选择。以下是国内十大物联网平台…

人工智能任务6-基于FAISS数据库的应用:向量数据库的搭建与中文文本相似度搜索

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能任务6-基于FAISS数据库的应用&#xff1a;向量数据库的搭建与中文文本相似度搜索。随着大数据时代的到来&#xff0c;如何高效地处理和检索海量文本数据成为了研究的热点。在这个信息爆炸的时代&#xff0c…

【MySQL进阶之路】什么是事务以及事务的操作

目录 什么是事务 事务的属性 事务的操作 查看数据库引擎 事务提交 开始一个事务 提交事务 创建一个保存点 回滚到保存点 结论 注意事项 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 什么是事务 事务是由一条或多条DML语句构成的。其中多条DML语句的执行必须有两…

【一起学Rust | 框架篇 | Tauri2.0框架】rust和前端的相互调用(前端调用rust)

文章目录 前言1. 前端调用rust&#xff08;command&#xff09;1. 在后端定义一个command2. 注册command3. 前端调用command 2. 前端调用rust&#xff08;event&#xff09;4. command完整实例 前言 本期将继续接着上一期&#xff0c;继续探索tauri中rust和前端的相互调用&…

视觉SLAM十四讲-理论到实践课程作业笔记-第六讲-光流法和直接法

CH6_No1&#xff1a; 1-1. 光流法可分为哪几类? 答&#xff1a;正向和逆向&#xff0c;其中两种方法各又包含了直加法和组合法&#xff1b; 1-2 在 compositional 中,为什么有时候需要做原始图像的 wrap?该 wrap 有何物理意义? 答&#xff1a;我个人的理解此处的wrap就是…

大数据系统测试——大数据系统解析(下)

各位好&#xff0c;我是 道普云 欢迎关注我的主页 希望这篇文章对想提高软件测试水平的你有所帮助。 学习和理解大数据系统每一个层次需要解决的技术问题和对应的一些技术需求是对大数据系统进行软件测试的一个基础&#xff0c;上篇文章里我们已经跟大家分享了数据收集层、…

33.python socket

python socket编程 概念说明心跳包的作用基于以上知识的基础上我们来实现一个代码socket serversocket client执行结果 概念说明 socket传输数据是基于字节流的&#xff0c;默认情况下是无边界的字节流。 一般情况下数据里中包含心跳包和数据包。数据包就是我们实际需要发送给…

中国建筑轮廓数据

建筑轮廓数据是建筑的边界矢量数据&#xff0c;一般该数据属性中会记录对应建筑的高度或者楼层数&#xff0c;通过建筑轮廓数据置顶的高程字段拉伸&#xff0c;就可以得到建筑白盒模型&#xff0c;所以&#xff0c;我们在各类导航地图中看到的白盒模型&#xff0c;实际上是建筑…

深度剖析:医疗行业财务报表的核心要素与解析策略

在当今医疗行业中&#xff0c;财务报表分析扮演着至关重要的角色。医疗机构需要通过对财务数据的准确分析来做出关键决策&#xff0c;管理资源&#xff0c;改善效率&#xff0c;并确保最终提供高质量的医疗服务。本文将深入探讨医疗行业中财务报表分析的重要性、关键指标和分析…

《一种个性化逻辑定制与类置换方案》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

通过违法app发现大量网站被挂黑页

免责声明&#xff1a;文章来源于真实事件&#xff0c;关键信息已经打码处理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一…

AI搜索的商业模式困境:Perplexity从拒绝广告到高价广告的转变

随着人工智能技术的发展&#xff0c;AI搜索逐渐成为人们日常生活中不可或缺的一部分。在这个领域&#xff0c;Perplexity曾被认为是AI搜索领域的领军企业&#xff0c;以其强大的智能搜索能力脱颖而出。然而&#xff0c;随着OpenAI的SearchGPT发布在即&#xff0c;Perplexity似乎…

掌握结构型模式——全景回顾

在前几篇文章中&#xff0c;我们详细探讨了多种结构型设计模式&#xff0c;今天来进行一个大总结——结构型设计模式主要关注类与对象的组合和组织&#xff0c;确保我们能够构建出稳固、灵活且易于维护的软件系统。无论你是初学者还是有经验的开发者&#xff0c;这篇文章都会帮…

计算循环冗余码(CRC)--软考笔记

1、什么是CRC循环冗余码&#xff08;CRC&#xff09; CRC&#xff08;Cyclic Redundancy Check&#xff09;是一种用于检测数据传输错误的校验码。它通过一个预定义的生成多项式来计算一个固定长度的校验值&#xff0c;这个值被附加到原始数据上一起发送。接收端使用相同的生成…

二叉树 - 完全二叉树的节点个数

222. 完全二叉树的节点个数 方法一&#xff1a;递归 /*** Definition for a binary tree node.* function TreeNode(val, left, right) {* this.val (valundefined ? 0 : val)* this.left (leftundefined ? null : left)* this.right (rightundefined ? nul…

多商户2.3.0后台顶部添加修改密码修复方法

问题&#xff1a;后台登录不能修改自己的密码&#xff1b; 解决方法&#xff1a; 修改前端代码&#xff0c;文件路径&#xff08;平台后台&#xff0c;商户后台一样的修改方法&#xff09;&#xff1a;src/layout/navBars/breadcrumb/user.vue 修改第一处 代码&#xff1a; 修…

IM即时通讯给娱乐社交、游戏等行业带来了什么影响?看这篇就知道

企业IM即时通讯技术的发展和应用&#xff0c;对我们的生活、工作、沟通和交流带来了显著的影响和改变。 IM即时通讯技术的发展不仅改变了我们的沟通方式&#xff0c;还提高了工作效率&#xff0c;促进了团队协作&#xff0c;保障了信息安全&#xff0c;并推动了业务创新。随着技…