Qt——QLabel控件常见的属性、方法和信号

QLabel 控件常见的属性、方法和信号

[一、QLabel 控件常见属性](#一、QLabel 控件常见属性)
[二、QLabel 控件常见方法](#二、QLabel 控件常见方法)
[三、QLabel 控件常见信号](#三、QLabel 控件常见信号)

方法:
set+xxx设置属性、去掉set就是获取属性

所有控件中的属性和方法都是通用的

QLabel 控件

描述:QLabel 是一个用于显示文本或图像的控件。它通常被用作标签或显示静态信息的区域。

一、QLabel 控件常见的属性

属性:

1. text:

描述:标签显示的文本内容。

用法:

cpp 复制代码
label->setText("Hello, World!");

2. pixmap:

描述:标签显示的图像。

用法:

cpp 复制代码
QPixmap pixmap("image.png");
label->setPixmap(pixmap);
lab2->setPixmap(QPixmap(":/1.jpg").scaled(lab2->width(), lab2->height()));

3. alignment:

描述:文本或图像在标签中的对齐方式。

用法:

cpp 复制代码
label->setAlignment(Qt::AlignCenter);

Qt::AlignLeft:将内容左对齐。
Qt::AlignRight:将内容右对齐。
Qt::AlignHCenter:将内容水平居中。
Qt::AlignJustify:通过拉伸或收缩字符间距来实现两端对齐。
Qt::AlignTop:将内容顶部对齐。
Qt::AlignBottom:将内容底部对齐。
Qt::AlignVCenter:将内容垂直居中。
Qt::AlignCenter:将内容水平和垂直都居中。

4. wordWrap:

描述:设置是否自动换行文本。

用法:

cpp 复制代码
label->setWordWrap(true);

5. openExternalLinks:

描述:设置是否打开外部链接。

用法:

cpp 复制代码
label->setOpenExternalLinks(true);

6. textFormat:

描述:设置文本显示格式,如纯文本、富文本等。

用法:

cpp 复制代码
label->setTextFormat(Qt::RichText);

7. textInteractionFlags:

描述:设置文本交互标志,如可选中、可复制等。

用法:

cpp 复制代码
label->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard);

8. margin:

描述:设置标签的边距。

用法:

cpp 复制代码
label->setMargin(10);

二、QLabel 控件常见的方法

1. clear:

描述:清除标签的内容,使其为空。

用法:

cpp 复制代码
label->clear();

2. setBuddy(QWidget *buddy):

描述:设置标签的伙伴控件,用于实现键盘快捷键。

用法:

cpp 复制代码
QLabel *nameLabel = new QLabel("Name:");
QLineEdit *nameLineEdit = new QLineEdit;
nameLabel->setBuddy(nameLineEdit);

3. setText():

描述:设置文本内容。

用法:

cpp 复制代码
button->settext("我是setText");

4. setPixmap():设置图像。
5. clear():清除文本和图像内容。
6. setAlignment():设置对齐方式。
7. setWordWrap():设置自动换行。
8. setOpenExternalLinks():设置是否允许打开超链接。
9. setToolTip():设置悬停提示信息。
10. setScaledContents();// terue或 false:图像自由缩放
11. lab2->setPixmap(QPixmap(":/1.jpg").scaled(lab2->width(), lab2->height())); // 图像适应性缩放

三、QLabel 控件常见的信号

1. linkActivated(const QString &link):

描述:当用户点击标签上的链接时发出。

用法:连接此信号以在链接被点击时执行操作。

cpp 复制代码
connect(label, &QLabel::linkActivated, [](const QString &link) {
    qDebug() << "Link activated:" << link;
});

2. linkHovered(const QString &link):

描述:当用户悬停在标签上的链接时发出。

用法:连接此信号以在链接被悬停时执行操作。

cpp 复制代码
connect(label, &QLabel::linkHovered, [](const QString &link) {
    qDebug() << "Link hovered:" << link;
});

3. linkPressed(const QString &link):

描述:当用户在标签上点击链接时发出,与 linkActivated 类似。

用法:连接此信号以在链接被点击时执行操作。

cpp 复制代码
connect(label, &QLabel::linkPressed, [](const QString &link) {
    qDebug() << "Link pressed:" << link;
});

示例:

下面是一个示例,演示了如何使用 QLabel 控件来显示文本和图像:

cpp 复制代码
#include <QApplication>
#include <QLabel>
#include <QPixmap>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QLabel label;
    label.setText("Hello, World!");  // 设置文本
    QPixmap pixmap("image.png");     // 加载图像
    label.setPixmap(pixmap);         // 设置图像

    label.setAlignment(Qt::AlignCenter);  // 设置对齐方式

    label.show();

    return app.exec();
}
cpp 复制代码
Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    setFixedSize(640, 480);
    lab1 = new QLabel("标签", this);
    lab1->setStyleSheet("background-color: #00ff00");
    lab1->setFixedSize(100, 50);

    //setAlignment()设置文本对齐方式
    lab1->setAlignment(Qt::AlignHCenter | Qt::AlignCenter);

    lab1->setText("改过来的文本");

    lab2 = new QLabel("大标签",this);
    lab2->resize(width(),height() - lab1->height());
    lab2->move(0, lab1->height());
    //lab2->setGeometry(lab1->x(), lab1->y() + 50, 640, 430);
    lab2->setStyleSheet("border: 1px solid red;");

#if 0
    //setScaledContents()设置内容的自由缩放
    lab2->setScaledContents(true);
    //setPixmap()显示绘图
    lab2->setPixmap(QPixmap(":/1.jpg"));
#else
    lab2->setPixmap(QPixmap(":/1.jpg").scaled(lab2->width(), lab2->height()));


#endif
}
相关推荐
2301_777998344 小时前
Linux信号机制
linux
人间凡尔赛5 小时前
Next.js 16 生产级实战:Cache Components + View Transitions 完整指南
开发语言·javascript·ecmascript
selfsongs6 小时前
指针、内存管理、现代 C++ 特性
c++
一叶龙洲7 小时前
win11与Ubuntu之间同步配置、插件
linux·运维·ubuntu
CHANG_THE_WORLD8 小时前
12.总结:深入理解 Linux I/O 多路复用:select、poll、epoll 全解析
linux·运维·服务器
吃着火锅x唱着歌8 小时前
Effective C++ 学习笔记 条款37 绝不重新定义继承而来的缺省参数值
c++·笔记·学习
2401_841495648 小时前
【数据结构】B+树
数据结构·数据库·c++·b+树·概念·结构·操作原理
小保CPP8 小时前
OCR C++ Tesseract按行识别字符
c++·人工智能·ocr·模式识别·光学字符识别
风曦Kisaki8 小时前
# Linux笔记:操作系统优化与资源管理
linux·运维·服务器·笔记
稚南城才子,乌衣巷风流8 小时前
函数:编程中的核心概念
开发语言·前端·javascript