QLabel 控件常见的属性、方法和信号
一、QLabel 控件常见属性
二、QLabel 控件常见方法
三、QLabel 控件常见信号
方法:
set+xxx设置属性、去掉set就是获取属性
所有控件中的属性和方法都是通用的
QLabel 控件
描述:QLabel
是一个用于显示文本或图像的控件。它通常被用作标签或显示静态信息的区域。
一、QLabel 控件常见的属性
属性:
1. text:
描述:标签显示的文本内容。
用法:
label->setText("Hello, World!");
- 1
2. pixmap:
描述:标签显示的图像。
用法:
QPixmap pixmap("image.png"); label->setPixmap(pixmap); lab2->setPixmap(QPixmap(":/1.jpg").scaled(lab2->width(), lab2->height()));
- 1
- 2
- 3
3. alignment:
描述:文本或图像在标签中的对齐方式。
用法:
label->setAlignment(Qt::AlignCenter);
Qt::AlignLeft:将内容左对齐。
Qt::AlignRight:将内容右对齐。
Qt::AlignHCenter:将内容水平居中。
Qt::AlignJustify:通过拉伸或收缩字符间距来实现两端对齐。
Qt::AlignTop:将内容顶部对齐。
Qt::AlignBottom:将内容底部对齐。
Qt::AlignVCenter:将内容垂直居中。
Qt::AlignCenter:将内容水平和垂直都居中。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
4. wordWrap:
描述:设置是否自动换行文本。
用法:
label->setWordWrap(true);
- 1
5. openExternalLinks:
描述:设置是否打开外部链接。
用法:
label->setOpenExternalLinks(true);
- 1
6. textFormat:
描述:设置文本显示格式,如纯文本、富文本等。
用法:
label->setTextFormat(Qt::RichText);
- 1
7. textInteractionFlags:
描述:设置文本交互标志,如可选中、可复制等。
用法:
label->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard);
- 1
8. margin:
描述:设置标签的边距。
用法:
label->setMargin(10);
- 1
二、QLabel 控件常见的方法
1. clear:
描述:清除标签的内容,使其为空。
用法:
label->clear();
- 1
2. setBuddy(QWidget *buddy):
描述:设置标签的伙伴控件,用于实现键盘快捷键。
用法:
QLabel *nameLabel = new QLabel("Name:"); QLineEdit *nameLineEdit = new QLineEdit; nameLabel->setBuddy(nameLineEdit);
- 1
- 2
- 3
3. setText():
描述:设置文本内容。
用法:button->settext("我是setText");
- 1
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):
描述:当用户点击标签上的链接时发出。
用法:连接此信号以在链接被点击时执行操作。
connect(label, &QLabel::linkActivated, [](const QString &link) { qDebug() << "Link activated:" << link; });
- 1
- 2
- 3
2. linkHovered(const QString &link):
描述:当用户悬停在标签上的链接时发出。
用法:连接此信号以在链接被悬停时执行操作。
connect(label, &QLabel::linkHovered, [](const QString &link) { qDebug() << "Link hovered:" << link; });
- 1
- 2
- 3
3. linkPressed(const QString &link):
描述:当用户在标签上点击链接时发出,与
linkActivated
类似。用法:连接此信号以在链接被点击时执行操作。
connect(label, &QLabel::linkPressed, [](const QString &link) { qDebug() << "Link pressed:" << link; });
- 1
- 2
- 3
示例:
下面是一个示例,演示了如何使用 QLabel
控件来显示文本和图像:
#include <QApplication>
#include <QLabel>
#include <QPixmap>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QLabel label<span class="token punctuation">;</span>
label<span class="token punctuation">.</span><span class="token function">setText</span><span class="token punctuation">(</span><span class="token string">"Hello, World!"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 设置文本</span>
QPixmap <span class="token function">pixmap</span><span class="token punctuation">(</span><span class="token string">"image.png"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 加载图像</span>
label<span class="token punctuation">.</span><span class="token function">setPixmap</span><span class="token punctuation">(</span>pixmap<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 设置图像</span>
label<span class="token punctuation">.</span><span class="token function">setAlignment</span><span class="token punctuation">(</span>Qt<span class="token double-colon punctuation">::</span>AlignCenter<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// 设置对齐方式</span>
label<span class="token punctuation">.</span><span class="token function">show</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> app<span class="token punctuation">.</span><span class="token function">exec</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
setFixedSize(640, 480);
lab1 = new QLabel("标签", this);
lab1->setStyleSheet("background-color: #00ff00");
lab1->setFixedSize(100, 50);
<span class="token comment">//setAlignment()设置文本对齐方式</span>
lab1<span class="token operator">-></span><span class="token function">setAlignment</span><span class="token punctuation">(</span>Qt<span class="token double-colon punctuation">::</span>AlignHCenter <span class="token operator">|</span> Qt<span class="token double-colon punctuation">::</span>AlignCenter<span class="token punctuation">)</span><span class="token punctuation">;</span>
lab1<span class="token operator">-></span><span class="token function">setText</span><span class="token punctuation">(</span><span class="token string">"改过来的文本"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
lab2 <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token function">QLabel</span><span class="token punctuation">(</span><span class="token string">"大标签"</span><span class="token punctuation">,</span><span class="token keyword">this</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
lab2<span class="token operator">-></span><span class="token function">resize</span><span class="token punctuation">(</span><span class="token function">width</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span><span class="token function">height</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">-</span> lab1<span class="token operator">-></span><span class="token function">height</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
lab2<span class="token operator">-></span><span class="token function">move</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> lab1<span class="token operator">-></span><span class="token function">height</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">//lab2->setGeometry(lab1->x(), lab1->y() + 50, 640, 430);</span>
lab2<span class="token operator">-></span><span class="token function">setStyleSheet</span><span class="token punctuation">(</span><span class="token string">"border: 1px solid red;"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
#if 0
//setScaledContents()设置内容的自由缩放
lab2->setScaledContents(true);
//setPixmap()显示绘图
lab2->setPixmap(QPixmap(":/1.jpg"));
#else
lab2->setPixmap(QPixmap(":/1.jpg").scaled(lab2->width(), lab2->height()));
#endif
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30