Qt6.5类库详解:QLabel

1. QLabel介绍

QLabel是Qt框架中的一个标签类,用于显示文本或图像。它可以在窗口或其他容器中显示静态文本,并且可以根据需要设置格式、对齐方式和尺寸。

QLabel的主要功能和特点包括:

  • 显示文本内容:QLabel可以显示文字内容,可以用于展示标题、标签、说明等静态文本信息。
  • 显示图像:QLabel还可以显示图像文件,支持多种常见的图像格式,比如PNG、JPEG等。
  • 支持富文本:QLabel支持使用HTML标记语言进行文本渲染,可以通过设置富文本格式来显示更具有样式和表现力的文本内容。
  • 设置格式和方位:QLabel具有灵活的格式化功能,可以设置字体、颜色、背景色等,还可以设置文本的对齐方式(左对齐、居中对齐、右对齐等)。
  • 自动调整大小:QLabel默认会根据其文本内容的长度和所使用的字体自动调整自身的大小。如果文本过长,可以通过设置大小策略来确定 QLabel 的最大宽度或高度。
  • 响应用户交互:QLabel可以与用户交互,比如支持点击事件、鼠标悬停事件、上下文菜单和链接跳转等功能。

QLabel是用于显示文本或图像的重要控件之一,具有丰富的功能和灵活性,适用于各种GUI应用程序的开发。

  • 如何使用QLabel:

头文件:#include <QLabel>

cmake:find_package(Qt6 REQUIRED COMPONENTS Widgets)

target_link_libraries(mytarget PRIVATE Qt6::Widgets)

qmake:QT += widgets

继承于:QFrame

2. QLabel默认风格显示例子

#include <QLabel>
// 帐号:
QLabel * p_label1 = new QLabel(this);
p_label1->setText("帐号:");
p_label1->setGeometry(50, 30, 100, 36);
// 密码:
QLabel * p_label2 = new QLabel("密码:", this);
p_label2->setGeometry(50, 60, 100, 36);

3. QLabel常用信号

// 当用户点击链接时,发射该信号。
void linkActivated(const QString& link)
// 当鼠标停留在链接上时,发射该信号。
void linkHovered(const QString& link)

4. QLabel常用属性

  • text文本:

// 访问函数
QString text() const
void setText(const QString &text)
  • pixmap&picture图像:

// 访问函数
QPixmap pixmap() const
void setPixmap(const QPixmap &pixmap)
QPicture picture() const
void setPicture(const QPicture &picture)

/**** 例子:显示 jpg 图像 ****/
#include <QLabel>
#include <QPixmap>
QLabel * p_label = new QLabel(this);
p_label->setPixmap(QPixmap("E:/20YC/QT/QLabelSample/20YC_logo.jpg"));
p_label->move(20, 20);

  • alignment文本对齐方式:

很多控件都具有对齐特性,例如QLabel、QLineEdit、QPushButton等控件。

// 访问函数:默认Qt::AlignLeft|Qt::AlignVCenter靠左垂直居中
Qt::Alignment alignment() const
void setAlignment(Qt::Alignment)

/**** 例子:设置靠右垂直居中对齐 ****/
p_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
  • openExternalLinks是否打开外部超链接:

true:表示设置使用QDesktopServices::openUrl()函数打开超链接。

// 访问函数;默认 false 不打开外部超链接
bool openExternalLinks() const
void setOpenExternalLinks(bool open)

/**** 例子:点击打开浏览器并跳转到指定链接地址 ****/
#include <QLabel>
QLabel * p_label = new QLabel(this);
p_label->setText("<a href=\"https://www.baidu.com\">点击我</a>");
p_label->setOpenExternalLinks(true);

5. QLabel选择文本函数

// 设置选择文本;从 start 开始选择 length 个字符
void setSelection(int start, int length)
// 返回当前是否有选择文本
bool hasSelectedText() const
// 返回当前选择文本
QString selectedText() const
// 返回选择字符起始序号
int selectionStart() const

6. QLabel标签综合例子

创建各种显示风格的QLabel标签按钮,包括文本颜色、背景颜色、边框、圆角边框等风格。

演示点击超链接打开网站,和显示图像等功能。

  • .h 头文件源码:

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>

class Dialog : public QDialog
{
    Q_OBJECT

public:
    Dialog(QWidget *parent = nullptr);
    ~Dialog();

};
#endif // DIALOG_H
  • .cpp 源文件源码:
#include "dialog.h"
#include <QLabel>
#include <QPixmap>

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
{
    this->setWindowTitle("20YC编程社区");
    this->resize(720, 480);

    // 红色字体,白色背景
    QLabel * p_label1 = new QLabel(this);
    p_label1->setText("红色字体,白色背景");
    p_label1->setGeometry(50, 30, 180, 36);
    p_label1->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
    p_label1->setStyleSheet("QLabel { color: red; background-color: rgb(255, 255, 255); }");

    // 蓝色边框
    QLabel * p_label12 = new QLabel(this);
    p_label12->setText("蓝色边框");
    p_label12->setGeometry(50, 70, 180, 36);
    p_label12->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
    p_label12->setStyleSheet("QLabel { border: 2px solid rgb(0, 0, 255) }");

    // 蓝色圆角边框
    QLabel * p_label13 = new QLabel(this);
    p_label13->setText("蓝色圆角边框");
    p_label13->setGeometry(50, 110, 180, 36);
    p_label13->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
    p_label13->setStyleSheet("QLabel { border: 2px solid rgb(0, 0, 255); border-radius: 10px; }");

    /**** 例子:点击打开浏览器并跳转到指定链接地址 ****/
    QLabel * p_label4 = new QLabel(this);
    p_label4->setGeometry(50, 150, 180, 36);
    p_label4->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
    p_label4->setText("<a href=\"https://www.baidu.com\">点击跳转到百度网站</a>");
    p_label4->setOpenExternalLinks(true);

    // 显示图片
    QLabel * p_label5 = new QLabel(this);
    p_label5->setPixmap(QPixmap("E:/20YC/QT/QLabelSample/20YC_logo.jpg"));
    p_label5->move(250, 30);
}

Dialog::~Dialog()
{
}

-【End】-

#想了解更多精彩内容,关注下方公众号,还有示例源码、开发工具免费下载。

喜欢本文章,记得点赞、分享、关注哦~

  • 20
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

20YC编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值