Qt—QLabel 使用总结

news/2024/11/30 3:08:13/

参考链接:Qt—QLabel 使用总结

一、简述

QLabel(标签控件) 提供了一个文本或图像的显示,没有提供用户交互功能。

一个 QLabel 可以包含以下任意内容类型:
-纯文本:使用 setText() 设置一个 QString

  • 富文本:使用 setText() 设置一个富文本的 QString
  • 图像:使用 setPixmap() 设置一个图像
  • 动画:使用 setMovie() 设置一个动画
  • 数字:使用 setNum() 设置 int 或 double,并转换为纯文本
  • Nothing:空的纯文本,默认的,使用 clear() 设置

二、使用总结

显示

首先我们构造一个 QLabel 对象。通过调用 setText 可以为标签设置文本(Hello World),这时标签就可以正常显示出来了。为了显示更佳的效果,我们可以通过调用 setStyleSheet 来设置样式。

QLabel *pLabel = new QLabel(this);
pLabel->setText("Hello World");
pLabel->setStyleSheet("color: red");

对齐方式

默认的标签文本对齐方式为:左对齐、垂直居中,我们可以通过 setAlignment 来设置,包括:左、上、右、下、居中对齐,一般情况,我们会进行两两组合(水平方向、垂直方向)。

比如:居中对齐

pLabel->setAlignment(Qt::AlignCenter);

使用样式表来控制(水平居右、垂直居下):

setStyleSheet("qproperty-alignment: 'AlignBottom | AlignRight';");

缩进

设置 QLabel 的文本缩进:

pLabel->setIndent(4);

自动换行

如果文本过长,我们可以采用自动换行的方式来显示。

pLabel->setWordWrap(true);

注意:当使用英文的时候,如果写为类似形式 ”abcdefghijklmnopqrstuvwxyz” 则是不能换行的,why?因为中间没有空格,所以需要写为 ”abcde fghij klmno pqrst uvwxyz”。

设置行高

一般情况下,自动换行之后文本上下行会距离比较近,我们可以通过下面方式来设置行高。

pLabel->setWordWrap(true);
QString strText = QStringLiteral("一去二三里,烟村四五家。亭台六七座,八九十枝花。");
QString strHeightText = "<p style=\"line-height:%1%\">%2<p>";
strText = strHeightText.arg(150).arg(strText);
pLabel->setText(strText);

省略

如果过长,我们又不想换行,只想把其中一部分省略为…,那么我们可以通过 QFontMetrics 来实现,这里先不介绍 QFontMetrics,感兴趣的童鞋可以先自行研究。

QString strText 

http://www.ppmy.cn/news/1551077.html

相关文章

科技“加码”编织智能防护网,中威电子助力智慧林业建设

“山泽救于火&#xff0c;草木植成&#xff0c;国之富也”。森林作为陆地生态系统的主体和重要资源&#xff0c;是人类生存发展的生态保障。 然而&#xff0c;随着气候变化和人为因素的交织影响&#xff0c;森林火灾的威胁日益严峻&#xff0c;给生态环境和人类社会带来了巨大…

AI潮汐日报1128期:Sora泄露引发争议、百度早期研究对AI领域Scaling Law的贡献、Meta发布系列AI开源项目

AI 潮汐日报&#xff0c;旨在提供最新潮、最核心、最有意思的AI速递。四大专栏&#xff1a;今日热点、应用速递、研究进展、思维碰撞。 今日热点 OpenAI文本转视频模型Sora泄露引发争议 OpenAI的文本转视频AI模型Sora在Hugging Face上遭遇泄露&#xff0c;泄露者为参与测试的…

IT成长之路-ubuntu驱动篇

历时3天的蹂躏&#xff0c;总结驱动安装全面教程。 步骤一、安装gcc、g和make包 #脚本更新 sudo apt-get update #编译gcc sudo apt-get install gcc #编译g sudo apt-get install g #编译make sudo apt-get install make 注意&#xff1a; gcc、g版本可能会导致显卡驱动安…

开源TTS语音克隆神器GPT-SoVITS_V2版本地整合包部署与远程使用生成音频

文章目录 前言1.GPT-SoVITS V2下载2.本地运行GPT-SoVITS V23.简单使用演示4.安装内网穿透工具4.1 创建远程连接公网地址 5. 固定远程访问公网地址 前言 本文主要介绍如何在Windows系统电脑使用整合包一键部署开源TTS语音克隆神器GPT-SoVITS&#xff0c;并结合cpolar内网穿透工…

queue 和 Stack

import scala.collection.mutable //queue:队列.排队打饭.... //特点&#xff1a;先进先出 //Stack:栈 //特点&#xff1a;先进后出 class ob5 { def main(args: Array[String]): Unit { val q1 mutable.Queue(1) q1.enqueue(2)//入队 q1.enqueue(3)//入队 q1.enqueue(4)…

深度学习day7-BP之梯度下降,过拟合与欠拟合

3 BP之梯度下降 梯度下降算法的目标是找到使损失函数L最小的参数&#xff0c;核心是沿着损失函数梯度的负方向更新参数&#xff0c;逐步逼近局部或者全局最优解&#xff0c;使模型更好地拟合训练数据。 1 数学描述 $$ w_{ij}^{new} w_{ij}^{old} - \alpha \frac{\partial E}…

【Linux】Linux 内存管理机制

前言 Linux 的内存管理机制是一个复杂而高效的系统&#xff0c;旨在确保系统资源的高效利用&#xff0c;同时提供良好的性能和响应能力。本文主要介绍 Linux 内存管理的主要组件和机制。 虚拟内存 概念: 每个进程在 Linux 中拥有自己的虚拟地址空间&#xff0c;这使得进程之…

分布式链路追踪系统

系统现状及需要解决的问题 系统异常无法接收告警 系统总会有这样或者那样的问题&#xff0c;同样的现象可能是不同的系统问题引起的&#xff0c;解决这些问题是研发的基本职责之一。 但是解决问题的前提是发现问题&#xff0c;系统告警就是我们发现感知问题的重要的手段&…