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

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

对齐方式

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

cpp 复制代码
// 获取和设置文本的对齐方式
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 设计师右侧的属性窗口中修改,也可以在代码中动态地获取和修改

换行

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

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

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

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

例子

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

cpp 复制代码
#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;
}
相关推荐
承渊政道2 分钟前
Linux系统学习【Linux系统的进度条实现、版本控制器git和调试器gdb介绍】
linux·开发语言·笔记·git·学习·gitee
JQLvopkk26 分钟前
C# 轻量级工业温湿度监控系统(含数据库与源码)
开发语言·数据库·c#
玄同76540 分钟前
从 0 到 1:用 Python 开发 MCP 工具,让 AI 智能体拥有 “超能力”
开发语言·人工智能·python·agent·ai编程·mcp·trae
czy878747542 分钟前
深入了解 C++ 中的 `std::bind` 函数
开发语言·c++
消失的旧时光-19431 小时前
从 Kotlin 到 Dart:为什么 sealed 是处理「多种返回结果」的最佳方式?
android·开发语言·flutter·架构·kotlin·sealed
yq1982043011561 小时前
静思书屋:基于Java Web技术栈构建高性能图书信息平台实践
java·开发语言·前端
一个public的class1 小时前
你在浏览器输入一个网址,到底发生了什么?
java·开发语言·javascript
Jinkxs1 小时前
Gradle - 与Groovy/Kotlin DSL对比 构建脚本语言选择指南
android·开发语言·kotlin
&有梦想的咸鱼&1 小时前
Kotlin委托机制的底层实现深度解析(74)
android·开发语言·kotlin
BD_Marathon1 小时前
设计模式——依赖倒转原则
java·开发语言·设计模式