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】-
#想了解更多精彩内容,关注下方公众号,还有示例源码、开发工具免费下载。
喜欢本文章,记得点赞、分享、关注哦~