Qt—QLabel 使用总结

server/2024/12/2 5:03:28/

参考链接: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/server/146620.html

相关文章

探索光耦:晶体管光耦——提升稳定性与安全性,推动能源效率革命

随着电子技术的飞速发展&#xff0c;开关电源&#xff08;Switching Power Supply, SPS&#xff09;已成为现代电子设备中不可或缺的核心组件。它广泛应用于计算机、通信设备、家电、电动工具等各种领域。开关电源因其高效率、体积小、重量轻而受到青睐。然而&#xff0c;由于开…

Cobalt Strike 4.8 用户指南-第十一节 C2扩展

11.1、概述 Beacon 的 HTTP 指标由 Malleable Command and Control &#xff08;Malleable C2&#xff09; 配置文件控制。Malleable C2 配置文件是一个简单的程序&#xff0c;它指定如何转换数据并将其存储在事务中。转换和存储数据的同一程序&#xff08;向后解释&#xff0…

【Vue3】main.js

【Vue3】main.js 创建Vue应用实例引入并配置路由配置状态管理挂载应用全局属性与方法使用其他插件 在Vue 3项目中&#xff0c;main.js 文件是整个应用的入口点。 它负责初始化Vue实例、配置全局选项、注册全局组件、引入插件以及挂载Vue实例到DOM上。 通过 main.js&#xff0c;…

详解八大排序(一)------(插入排序,选择排序,冒泡排序,希尔排序)

文章目录 前言1.插入排序&#xff08;InsertSort&#xff09;1.1 核心思路1.2 实现代码 2.选择排序&#xff08;SelectSort&#xff09;2.1 核心思路2.2 实现代码 3.冒泡排序&#xff08;BubbleSort&#xff09;3.1 核心思路3.2 实现代码 4.希尔排序&#xff08;ShellSort&…

【Vue3】App.vue

【Vue3】App.vue App.vue 是 Vue 3 项目中的一个核心文件&#xff0c;它作为整个应用的入口组件&#xff0c;是所有其他页面和组件的基础。 在 Vue 项目中&#xff0c;App.vue 文件起到了非常关键的作用&#xff0c;它负责组织和渲染整个应用程序的结构。 下面我们来深入解读 A…

【算法】欧几里得与拓展欧几里得算法

目录 一、欧几里得算法 二、拓展欧几里得算法 2.1 裴蜀定理 2.2 拓展欧几里得算法 2.3 例题 三、线性同余方程 3.1 概念 3.2 例题 一、欧几里得算法 欧几里得算法又称辗转相除法&#xff0c;可用于求解两个数的最大公约数 其思路&#xff1a; gcd(a, b) gcd(b, a%b…

多数元素

多数元素 给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 示例 1&#xff1a; 输入&#xff1a;nums [3,2,3] 输出&#xff…

2024-11-27 学习人工智能的Day32 神经网络与反向传播

一、神经网络 神经网络神经网络&#xff08;Neural Networks&#xff09;是一种模拟人脑神经元网络结构的计算模型&#xff0c;用于处理复杂的模式识别、分类和预测等任务。 人工神经元是神经网络的基础构建单元&#xff0c;模仿了神武神经元的工作原理&#xff0c;核心功能是…