【Qt 常用控件】显示类控件——QLabel

目录

1.QLabel

1.1 textFormat 文本类型

普通文本和富文本

Markdown格式

1.2 alignment 文本对齐方式

1.3 wordWrap 自动换行

1.4 indent 文本缩进

1.5 margin 边距

1.6 buddy,qlabel伙伴

 1.7 pixmap图片 和 scaledContents自动填充


1.QLabel

功能:显示图片和文本

属性:
 

textQLabel中的文本。
textFormat

文本格式

Qt::PlainText :纯文本

Qt::RichText: 富文本、支持html标签

Qt::MarkdownText:markdown格式

Qt::AutoText:根据文本内容自动分析文本格式

pixmap设置QLabel内部包含的图片。
scaledContents

label内部图片 是否自动拉伸填充。

alignment

文本对齐方式(水平/垂直居中对齐,左/右/上/下 对齐)

wordWrap

自动换行

文本长度超出Label显示范围,是否自动换行。

如果不自动换行,文本不能完全显示。

QLabel不提供滚动条,QTextEdit(多行编辑框)提供滚动条拖拽。

indent

设置文本缩进。设置后,对label内的所有行都缩进,不只是首行缩进。

水平方向和垂直方向都生效。

而indent最多只是两个方向有效(具体哪两个⽅向有效取决于alignment对齐方式)。

margin

内部⽂本和边框之间的边距。

不同于于indent文本缩进。

是上下左右四个方向都同时有效。

openExternalLinks

是否允许打开⼀个外部的链接.

(当QLabel⽂本内容包含url的时候涉及到)

buddy

给QLabel关联⼀个"伙伴"

这样点击QLabel时就能激活对应的伙伴

例如伙伴如果是⼀个QCheckBox

那么该QCheckBox就会被选中

1.1 textFormat 文本类型

文本格式

Qt::PlainText :纯文本

Qt::RichText: 富文本、支持html标签

Qt::MarkdownText:markdown格式

Qt::AutoText:根据文本内容自动分析文本格式

例:为label标签,设置不同的文本类型

观察<b>标签的对文本的修饰效果,和#在markdown类型中的显示效果

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

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    ui->label_plaintext->setTextFormat(Qt::PlainText);
    ui->label_plaintext->setText("<b>纯文本</b>");

    ui->label_richtext->setTextFormat(Qt::RichText);
    ui->label_richtext->setText("<b>富文本</b>");

    ui->label_markdown->setTextFormat(Qt::MarkdownText);
    ui->label_markdown->setText("# 带标题符的markdown");

}

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

普通文本和富文本

1. 普通文本

仅由字符(字母、数字、标点符号等)组成,是最基本的文字信息载体。

2. 富文本

使用word工具编辑的文件、就可以认为是富文本

富文本除了文字外,还包含多种格式和多媒体元素。

在格式方面,可以有不同的字体、字号、字体颜色、加粗、倾斜、下划线等样式,

还能设置段落格式,如缩进、行距等。

并且可以插入多媒体元素,像图片、视频、音频,以及超链接、表格、图表等。

Markdown格式

Markdown是一种轻量级的「标记语言」,提供各种特殊符号,表示不同的样式/格式。

  • #表示标题

  • 设置文本样式的符号:

1.2 alignment 文本对齐方式

  • Qt::AlignLeft:左对齐。
  • Qt::AlignRight:右对齐。
  • Qt::AlignTop:顶部对齐
  • Qt::AlignBottom:底部对齐。

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

1.3 wordWrap 自动换行

wordWrap 自动换行:文本长度超出Label显示范围,是否自动换行。

如果不自动换行,文本不能完全显示。

QLabel不提供滚动条,QTextEdit(多行编辑框)提供滚动条拖拽。

 //自动换行
    ui->label_2->setText("长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长");
    ui->label_2->setWordWrap(true);

1.4 indent 文本缩进

    //intdent文本缩进
    ui->label_3->setText("长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长");
    ui->label_3->setIndent(50);
    ui->label_3->setWordWrap(true);

1.5 margin 边距

    ui->label_3->setText("长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长");
    ui->label_3->setIndent(50);//缩进50
    ui->label_3->setWordWrap(true);//自动换行
    ui->label_3->setMargin(50);//边距50

边距效果:设置label内上下左右空白部分的距离(边距),只有内部矩形部分能显示文本。

未设置边距的时:

设置边距后:

超出中间矩形区域的部分,不显示。

边距与缩进:

 有边距、有缩进

有边距、无缩进

缩进是,在边距的基础上,再缩进。

1.6 buddy,qlabel伙伴

给QLabel关联⼀个"伙伴",这样点击QLabel时就能激活对应的伙伴。

例如伙伴如果是⼀个按钮(单选或复选按钮),按下快捷键,按钮会被选中。

绑定伙伴关系后,利用QLabel文本中的&符,为伙伴设置快捷键。

快捷键为:alt+指定字符。该字符label文本中&符,后的第一个字符。

    ui->label->setBuddy(ui->radioButton);
    ui->label_2->setBuddy(ui->radioButton_2);

1.7 pixmap图片 和 scaledContents自动填充

此时图片自动拉伸,铺满label:

重写resizeEvent虚函数,实现拖拽改变窗口大小的同时,改变QLabel的大小

可当窗口大小发生改变时,QLabel大小并不会随之变化:

  • 原因:为QLabel设置大小,是在widget的构造函数中设置的,设置就只设置了这一次
  • 虽然已经设置了label内的图片自动填充,可是label大小并没有改变,填充也没用。

Qt中表示用户操作的两类概念:信号、事件。

当拖拽修改窗口大小时,会触发resize事件。

resize这种事件,是一个连续的过程(从a一点点到b的过程),就会触发一系列的resize事件。

每触发一次resizeEvent事件,都会调用一次对应的虚函数。

  • 解决方法:重写QWidget的resizeEvent虚函数。
  • 原理:多态调用,实际会调用到子类Widget重写的虚函数。

回调函数设置方法

1.函数指针

2.函数对象

3.lambda

4.重写父类虚函数(框架内部拿着父类指针、调用虚函数(只要传参传的子类对象地址,就会实现多态调用))

5.Qt的信号槽

void Widget::resizeEvent(QResizeEvent* event)
{
        qDebug()<< event->size();
        ui->label->setGeometry(0,0,event->size().width(),event->size().height());
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

npm install 报错:Command failed: git checkout 2.2.0-c

[TOC](npm install 报错&#xff1a;Command failed: git checkout 2.2.0-c) npm install 报错&#xff1a;Command failed: git checkout 2.2.0-c export NODE_HOME/usr/local/node-v14.14.0-linux-x64 npm config set registry https://registry.npmmirror.com 使用如上环…

Oracle 创建并使用外部表

目录 一. 什么是外部表二. 创建外部表所在的文件夹对象三. 授予访问外部表文件夹的权限3.1 DBA用户授予普通用户访问外部表文件夹的权限3.2 授予Win10上的Oracle用户访问桌面文件夹的权限 四. 普通用户创建外部表五. 查询六. 删除 一. 什么是外部表 在 Oracle 数据库中&#x…

戴尔电脑用u盘重装系统_戴尔电脑用u盘重装win10系统教程

戴尔电脑用u盘重装系统&#xff1f;戴尔电脑这几年默认预装win10家庭版和win11家庭版。有的用户用上了预装win11家庭版的戴尔电脑&#xff0c;使用一段时间依然不习惯&#xff0c;于是想退回win10。但不知道怎么重装win10&#xff0c;这几年的戴尔电脑建议采用U盘方式安装系统比…

【动态规划】--- 斐波那契数模型

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏&#xff1a; 算法Journey &#x1f3e0; 第N个泰波那契数模型 &#x1f4cc; 题目解析 第N个泰波那契数 题目要求的是泰波那契数&#xff0c;并非斐波那契数。 &…

wps数据分析000002

目录 一、快速定位技巧 二、快速选中技巧 全选 选中部分区域 选中部分区域&#xff08;升级版&#xff09; 三、快速移动技巧 四、快速录入技巧 五、总结 一、快速定位技巧 ctrl→&#xff08;上下左右&#xff09;快速定位光标对准单元格的上下部分双击名称单元格中…

常用集合-数据结构-MySql

目录 java核心&#xff1a; 常用集合与数据结构: 单例集合: 双列集合: 线程安全的集合: ConcurrentHashMap集合: HashTable集合: CopyOnWriteArrayList集合: CopyOnWriteArraySet集合: ConcurrentLinkedQueue队列: ConcurrentSkipListMap和ConcurrentSkipListSet&…

PHP礼品兑换系统小程序

&#x1f381; 礼品兑换系统&#xff1a;革新企业礼品管理&#xff0c;专属神器来袭&#xff01; &#x1f4bb; 一款专为追求高效与个性化的现代企业量身打造的礼品兑换系统&#xff0c;它基于强大的ThinkPHP框架与前沿的Uniapp技术栈深度融合&#xff0c;不仅完美适配礼品卡…

NoETL | 数据虚拟化如何在数据不移动的情况下实现媲美物理移动的实时交付?

在我们之前的文章中&#xff0c;我们回顾了Denodo在逻辑数据仓库和逻辑数据湖场景中所使用的主要优化技术&#xff08;具体内容请参阅之前的文章&#xff09;。 数据架构 | 逻辑数据仓库与物理数据仓库性能对比_物理数仓、逻辑数仓-CSDN博客文章浏览阅读1.5k次&#xff0c;点赞…

前沿技术趋势洞察:2024年技术的崭新篇章与未来走向!

引言 时光飞逝&#xff0c;2024年已经来临&#xff0c;回顾过去一年&#xff0c;科技的迅猛进步简直让人目不暇接。 在人工智能&#xff08;AI&#xff09;越来越强大的今天&#xff0c;我们不再停留在幻想阶段&#xff0c;量子计算的雏形开始展示它的无穷潜力&#xff0c;Web …

2024年终总结-行到水穷处,坐看云起时

依然是——关于我 我&#xff0c;坐标山东青岛&#xff0c;一位无名的Java Coder&#xff0c;你可以叫我Debug.c亦或者种棵代码技术树。在此不过多赘述关于我&#xff0c;更多的关于我请移步我的2023年年终总结。 2023年终总结-轻舟已过万重山 2024年OKR完成情况 2023年年末…

SpringMVC (2)

目录 1. RequestMapping 注解介绍 2. RequestMapping 使用 3. RequestMapping与请求方式 3.1 RequestMapping 支持Get和Post类型的请求 3.2 RequestMapping 指定接收某种请求 3.3 GetMapping和PostMapping 4. 传参 4.1 通过查询字符串传参 4.2 在 Body 中传参 4.2.1 …

使用ssh推送项目到github

文章目录 1. 确保已生成 SSH 密钥2. 在 GitHub 上创建远程仓库3. 初始化本地项目4. 将本地项目与远程仓库关联5. 添加文件并提交补充&#xff1a;拉取远程修改&#xff08;可选&#xff09;6. 推送到 GitHub7. 完成总结 出现的问题解决方法&#xff1a;方法 1&#xff1a;允许合…

一文读懂 RocketMQ:从概念到架构与应用原理概述

文章目录 概述架构说明核心组件核心概念 namesvrproducer默认实现producer启动消息发送 broker-mq核心基本模型集群模型内部模型存储机制高可用 consumerpush类型push流程pull类型 概述 随着分布式技术在业内的快速应用&#xff0c;mq&#xff08;消息队列&#xff09;做为不可…

具身智能新突破!Physical Intelligence推出机器人动作tokenizer,训练提速5倍

具身智能&#xff0c;是人工智能&#xff08;AI&#xff09;行业的下一个浪潮。如何有效训练 Transformers 模型来控制具身机器人&#xff0c;是当前亟需要解决的难题&#xff0c;尤其是对于更复杂、需要精确和高频控制的精巧技能&#xff0c;现有的视觉-语言-动作&#xff08;…

通过idea创建的springmvc工程需要的配置

在创建的spring mvc工程中&#xff0c;使用idea开发之前需要配置文件包括porm.xml、web.xml、springmvc.xml 1、porm.xml 工程以来的spring库&#xff0c;主要包括spring-aop、spring-web、spring-webmvc&#xff0c;示例配置如下&#xff1a; <project xmlns"http:/…

【MySQL系列文章】Linux环境下安装部署MySQL

前言 本次安装部署主要针对Linux环境进行安装部署操作,系统位数64 getconf LONG_BIT 64MySQL版本&#xff1a;v5.7.38 一、下载MySQL MySQL下载地址&#xff1a;MySQL :: Download MySQL Community Server (Archived Versions) 二、上传MySQL压缩包到Linuxx环境&#xff0c…

【排查案例】无认证集群空白分区创建元凶排查记录

无认证集群空白分区创建元凶排查记录 前言正文SparkSQL Thrift审计通过edit查找操作抓包分析请求NodeManager日志追踪结论 后记 前言 今天分享一个最近在生产环境排查的空白分区的问题&#xff0c;先说业务感知&#xff0c;业务那边反馈本身这条业务链每个小时数据应该是3个分…

音频入门(一):音频基础知识与分类的基本流程

音频信号和图像信号在做分类时的基本流程类似&#xff0c;区别就在于预处理部分存在不同&#xff1b;本文简单介绍了下音频处理的方法&#xff0c;以及利用深度学习模型分类的基本流程。 目录 一、音频信号简介 1. 什么是音频信号 2. 音频信号长什么样 二、音频的深度学习分…

语义分割文献阅读-SegNet:一种用于图像分割的深度卷积编码器-解码器架构(1.13-1.19)

目录 摘要 Abstract 1 引言 2 SegNet架构 2.1 编码器网络 2.2 解码器网络 2.3 最大池化索引(Max-pooling Indices) 3 训练SegNet 3.1 加载预训练权重 3.2 构建MyDataset类 3.3 训练 4 测试 总结 摘要 本周阅读的论文题目是《SegNet&#xff1a;A Deep Convoluti…

深度学习核函数

一、核函数的基本概念 核函数在机器学习中具有重要应用价值&#xff0c;常用于支持向量机&#xff08;SVM&#xff09;等算法中。 核函数是面试中经常被考到的知识点&#xff0c;对于找工作和实际数据转换都有重要作用。 二、数据建模与核函数的作用 数据越多&#xff0c;可…