QT--Qlabel学习、获取文本和设置文本、文本对齐方式、文本换行、显示图片

server/2024/10/23 20:12:52/

QLabel 是 Qt 中的标签类,通常用于显示提示性的文本,也可以显示图像

对齐方式

用于设置标签中的内容在水平和垂直两个方向上的对齐方式,比如左对齐、右对齐、上对齐、下对齐、水平居中、垂直居中等。

// 获取和设置文本的对齐方式
Qt::Alignment alignment() const;
void setAlignment(Qt::Alignment);

其中,Qt::Alignment 是一个宏,常用取值如下:

  • Qt::AlignLeft(0x0001) 水平方向-左对齐
  • Qt::AlignRight(0x0002) 水平方向-右对齐
  • Qt::AlignHCenter(0x0004) 水平方向-居中对齐
  • Qt::AlignTop(0x0020)垂直方向-上对齐
  • Qt::AlignBottom(0x0040)垂直方向-下对齐
  • Qt::AlignVCenter(0x0080)垂直方向-居中对齐
  • Qt::AlignCenter(AlignVCenter | AlignHCenter) 垂直方向和水平方向-居中对齐

上面的每一个宏,都代表 16 进制中的一位,可以进行或(|)操作,来同时设置多个对齐方式。

该属性,既可以在 Qt 设计师右侧的属性窗口中修改,也可以在代码中动态地获取和修改

换行

使能换行时,那么标签在缩放时,如果文字可以显示在下一行,就会自动换行

// 获取和设置文本是否允许换行
// 换行时:在 word-breaks处,不会将一个完整的单词显示在两行
bool wordWrap() const; // 判断是否允许换行 
void setWordWrap(bool on); // 设置是否允许换行 

该属性,既可以在 Qt 设计师右侧的属性窗口中修改,也可以在代码中动态地获取和修改

其他的之前的学习学习过就不罗列了,具体查文档即可

例子

该案例演示,如何设置和获取标签文本,文本对齐方式,文本换行,以及显示图片

#include "QLabelTest.h"
#include<QTime>
#include<QMessagebox>
#include<QPixmap>QLabelTest::QLabelTest(QWidget *parent): QWidget(parent), ui(new Ui::QLabelTestClass())
{ui->setupUi(this);// 获取文本和设置文本ui->labelGetSetText->setFont(QFont("黑体", 16));ui->labelGetSetText->setText("获取文本和设置文本初始化完成");connect(ui->pbtGetText, &QPushButton::clicked, this, [this]() {auto s = ui->labelGetSetText->text();QMessageBox::information(this, "标签演示", s);});connect(ui->pbtSetText, &QPushButton::clicked, this, [this]() {ui->labelGetSetText->setText(QString(QTime::currentTime().toString()));});// 文本对齐方式ui->labelAlignText->setFont(QFont("黑体", 16));ui->labelAlignText->setText("为中华民族伟大复兴而努力奋斗");connect(ui->pbtLeftAlign, &QPushButton::clicked, this, [this]() {ui->labelAlignText->setAlignment(Qt::AlignLeft| Qt::AlignVCenter);});connect(ui->pbtCenterAlign, &QPushButton::clicked, this, [this]() {ui->labelAlignText->setAlignment(Qt::AlignCenter);});connect(ui->pbtRightAlign, &QPushButton::clicked, this, [this]() {ui->labelAlignText->setAlignment(Qt::AlignRight|Qt::AlignVCenter);});// 文本换行ui->lableWrapText->setFont(QFont("黑体", 16));ui->lableWrapText->setText("为人民幸福而奋斗,为社会主义事业而努力奋斗,为中华民族伟大复兴而奋斗");connect(ui->pbtEnbleWrap, &QPushButton::clicked, this, [this]() {ui->lableWrapText->setWordWrap(true);});connect(ui->pbtDisableWrap, &QPushButton::clicked, this, [this]() {ui->lableWrapText->setWordWrap(false);});// 显示图片int index = 0;connect(ui->pbtShowImg, &QPushButton::clicked, this, [&]() {QPixmap qpm;if (index == 0){qpm.load(":/Icon/logo_dingding_circle.svg");index++;}else{index = 0;qpm.load(":/Icon/logo_wechat.svg");}ui->labelShowImg->setPixmap(qpm);ui->labelShowImg->setScaledContents(false);ui->labelShowImg->setAlignment(Qt::AlignCenter);});
}QLabelTest::~QLabelTest()
{delete ui;
}


http://www.ppmy.cn/server/134246.html

相关文章

计算机组成原理一句话

文章目录 计算机系统概述存储系统指令系统 计算机系统概述 指令和数据以同等地位存储在存储器中&#xff0c;形式上没有差别&#xff0c;但计算机应能区分他们。通过指令周期的不同阶段。 完整的计算机系统包括&#xff0c;1&#xff09;软件系统&#xff1a;程序、文档和数据&…

计算机专业大学四年的学习路线(非常详细),零基础入门到精通,看这一篇就够了

前言 许多学子选择踏上计算机这条充满挑战与机遇的道路。但在大学四年中&#xff0c;如何规划自己的学习路线&#xff0c;才能在毕业时脱颖而出&#xff0c;成为行业的佼佼者呢&#xff1f; 第一学年&#xff1a;基础知识的奠基 1.1 课程安排 在大学的第一年&#xff0c;重…

写 R 包教程

R R 包开发 | 保姆级教程-CSDN博客 https://www.prestevez.com/post/r-package-tutorial/ 1、加载开发所需 R 包 library(usethis) library(devtools) library(roxygen2) 2、在当前工作路径创建 R 包 usethis::create_package("myRpkg") # 在当前路径创建 my…

网易面试:请设计一个高可用性的软件架构,说明设计思路

有一位粉丝留言说&#xff0c;他前几年面试网易的研发时&#xff0c;面试官问到这样一个问题&#xff1a;**你怎么设计一个高可用性的架构&#xff1f;**当时这位粉丝列举了集群、数据库主从等方面&#xff0c;但是没有说全&#xff0c;面试结果不理想。应这位粉丝的要求&#…

TCP 全连接队列与 tcpdump 抓包

TCP 相关实验 理解 listen 的第二个参数 基于刚才封装的 TcpSocket 实现以下测试代码对于服务器, listen 的第二个参数设置为 1, 并且不调用 accept test_server.cc C #include "tcp_socket.hpp" int main(int argc, char* argv[]) {if (argc ! 3) {printf("…

`RunUMAP` 函数在 Seurat 中可以使用不同的数据进行计算

RunUMAP 函数在 Seurat 中可以使用不同的数据进行计算&#xff0c;具体取决于您传递给它的参数。即使没有显式地运行 FindNeighbors&#xff0c;RunUMAP 仍然可以计算 UMAP&#xff0c;因为它会自动构建邻居图&#xff08;neighbor graph&#xff09;。以下是详细解释&#xff…

Ubuntu20.04安装MySQL 设置root远程登录权限

1、查看版本 lsb_release -a 2、安装Mysql sudo apt update sudo apt install mysql-server 2.1、 常用命令 2.1.1、查看状态 sudo systemctl status mysql 2.1.2、停止服务 sudo systemctl stop mysql sudo systemctl status mysql 2.1.3、启用服务 sudo service mysql star…

复习:React 中的 Diff 算法,原理是什么

React中的Diff算法,其原理主要用于比较新旧虚拟DOM树的差异,并生成更新补丁以最小化DOM操作。以下是React Diff算法原理的详细解释: 一、Diff算法的基本概念 Diff算法,即差异查找算法,在React中主要用于计算虚拟DOM中真正变化的部分,并只针对该部分进行原生DOM操作,而…