【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);//缩进50ui->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());
}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vif-方差膨胀因子计算

vif-方差膨胀因子 使用statsmodels中的variance_inflation_factor&#xff0c;数据集使用乳腺癌数据集 import pandas as pd import numpy as np from sklearn.datasets import load_breast_cancer from tqdm import notebook from statsmodels.stats.outliers_influence impor…

查看电脑或笔记本CPU的核心数方法及CPU详细信息

一、通过任务管理器查看 1.打开任务管理器 可以按下“Ctrl Shift Esc”组合键&#xff0c;或者按下“Ctrl Alt Delete”组合键后选择“任务管理器”来打开。 2.查看CPU信息 在任务管理器界面中&#xff0c;点击“性能”标签页&#xff0c;找到CPU使用记录区域&#xff0c…

数据恢复常见故障(四)关键信号的耦合电容撞件后导致SATA前端通信异常

数据恢复常见故障&#xff08;四&#xff09;关键信号耦合电容撞件后导致SATA前端通信异常 SATA固态硬盘SATA差分信号上有耦合电容&#xff0c;电容被撞件后&#xff0c;偏移&#xff0c;导致接触不良&#xff0c;引起SATA前端信号通信异常&#xff0c;故障现象表现为不认盘&a…

[HCTF 2018]WarmUp

题目&#xff1a;一上来给了个图片还是很懵的&#xff0c;于是尝试查看一下源代码&#xff1a;发现有提示&#xff1a;于是访问source.php得到了php代码&#xff1a;(这里将代码和代码分析放一块) <?phphighlight_file(__FILE__); class emmm{public static function chec…

MYSQL数据库基础-01.数据库的基本操作

数据库的语法是大小写不敏感的&#xff0c;可以使用大写&#xff0c;也可以使用小写。 每条语句要以&#xff1b;结尾&#xff0c;可以多行输入。 名称不能是关键字,若想用关键字命名,要用反引号 引起来。 目录 一.数据库的基本操作 1.创建数据库&#xff1a; 2.查看数据库…

Decode Global专注金融创新,构建便捷的交易平台

随着金融市场持续进阶&#xff0c;越来越多的年轻正在涌入金融交易的体系中&#xff0c;针对当下年轻人崇尚精简&#xff0c;优中取优的特点&#xff0c;Decode Global紧跟金融市场发展的步伐&#xff0c;不断创新体验&#xff0c;致力于打造一个精简快捷&#xff0c;安全便捷的…

系统思考—转型

我们大多数问题的来源是&#xff1a;人们的思考方式与大自然的运作方式之间的差异。——葛雷果利贝特森&#xff08;人类学家、生物学家及系统思考先驱&#xff09; 在企业转型的过程中&#xff0c;许多企业创始人常常面临一个困境——过去的成功经验和旧有的思维方式&#xf…

Flutter:carousel_slider 横向轮播图、垂直轮播公告栏实现

安装依赖 carousel_slider: ^5.0.01、垂直滚动公告栏 import package:carousel_slider/carousel_options.dart;// 垂直滚动公告栏Widget _buildNotice() {return <Widget>[<Widget>[TDImage(assetUrl: "assets/img/home11.png",width: 60.w,height: 60.w…

【二叉树的深搜】计算布尔二叉树的值 求根节点到叶节点数字之和

文章目录 2331. 计算布尔二叉树的值解题思路&#xff1a;后序遍历129. 求根节点到叶节点数字之和解题思路&#xff1a;深度优先搜索 前序遍历 2331. 计算布尔二叉树的值 2331. 计算布尔二叉树的值 给你一棵 完整二叉树 的根&#xff0c;这棵树有以下特征&#xff1a; 叶子节…

【高阶数据结构】布隆过滤器(BloomFilter)

1. 概念 1.1 背景引入 背景&#xff1a;在计算机软件中&#xff0c;一个常见的需求就是 在一个集合中查找一个元素是否存在 &#xff0c;比如&#xff1a;1. Word 等打字软件需要判断用户键入的单词是否在字典中存在 2. 浏览器等网络爬虫程序需要保存一个列表来记录已经遍历过…

偏序关系.

一、偏序&#xff08;半序&#xff09;关系 偏序关系 自反反对称传递性 二、全序&#xff08;线序、链&#xff09;关系 三、偏序集中的重要元素 1. 极大元与极小元 极大元找所在集合的一个或几个最高点&#xff1b; 极小元找所在集合的一个或几个最低点。 2. 最大元与最小…

国产编辑器EverEdit - 列编辑模式

1 列模式 1.1 应用背景 在编辑CSV格式&#xff0c;或者比较规整的配置文件时&#xff0c;可能会用到一列的内容都要进行修改的情况&#xff0c;在不支持列模式的编辑器中&#xff0c;可能需要用户逐行去编辑&#xff0c;比如有下面一段扯淡文本&#xff1a; ADD NRNFREQ:LOCA…

论文笔记(六十三)Understanding Diffusion Models: A Unified Perspective(一)

Understanding Diffusion Models: A Unified Perspective&#xff08;一&#xff09; 文章概括引言&#xff1a;生成模型背景&#xff1a;ELBO、VAE 和分层 VAE证据下界&#xff08;Evidence Lower Bound&#xff09;变分自编码器 &#xff08;Variational Autoencoders&#x…

【重庆市乡镇界】面图层shp格式arcgis数据乡镇名称和编码wgs84坐标无偏移内容测评

标题中的“最新重庆市乡镇界面图层shp格式arcgis数据乡镇名称和编码wgs84坐标无偏移最新”指的是一个地理信息系统&#xff08;GIS&#xff09;的数据集&#xff0c;特别设计用于ArcGIS软件。这个数据集包含了重庆市所有乡镇的边界信息&#xff0c;以Shapefile&#xff08;.shp…

【0x04】HCI_Connection_Request事件详解

目录 一、事件概述 二、事件格式及参数 2.1. HCI_Connection_Request 事件格式 2.2. BD_ADDR 2.3. Class_Of_Device 2.4. Link_Type 三、主机响应 3.1. ACL链接类型 3.2. SCO或eSCO链接类型 四、应用场景 4.1. 设备配对场景 4.2. 蓝牙文件传输场景 4.3. 蓝牙物联网…

9. 神经网络(一.神经元模型)

首先&#xff0c;先看一个简化的生物神经元结构&#xff1a; 生物神经元有多种类型&#xff0c;内部也有复杂的结构&#xff0c;但是可以把单个神经元简化为3部分组成&#xff1a; 树突&#xff1a;一个神经元往往有多个树突&#xff0c;用于接收传入的信息。轴突&#xff1a;…

CTTSHOW-WEB入门-爆破25-28

web25 题目&#xff1a;解题思路及步骤&#xff1a;分析代码&#xff1a; error_reporting(0); include("flag.php");//包含文件flag.php if(isset($_GET[r])){$r $_GET[r];//获取参数rmt_srand(hexdec(substr(md5($flag), 0,8)));$rand intval($r)-intval(mt_ra…

win32汇编环境,对多行编辑框添加或删除文本

;运行效果 ;win32汇编环境,对多行编辑框添加或删除文本 ;主要要先设置文本的开始点与结束点&#xff0c;然后把一段文本顶替上去。没有添加文本或删除文本的概念&#xff0c;只有顶替。如果开始点与结束点都是前面文本的长度值&#xff0c;则成了从后面添加文本的效果。如果结束…

AutoGen入门——快速实现多角色、多用户、多智能体对话系统

1.前言 如https://github.com/microsoft/autogen所述&#xff0c;autogen是一多智能体的框架&#xff0c;属于微软旗下的产品。 依靠AutoGen我们可以快速构建出一个多智能体应用&#xff0c;以满足我们各种业务场景。 本文将以几个示例场景&#xff0c;使用AutoGen快速构建出…

项目中使用的是 FastJSON(com.alibaba:fastjson)JSON库

从你的 pom.xml 文件中可以看到&#xff0c;项目明确依赖了以下 JSON 库&#xff1a; FastJSON&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version> </depende…