Qt 之 QLabel及常见使用方式

简述

QLabel提供了一个文本或图像的显示,没有提供用户交互功能。

一个QLabel可以包含以下任意内容类型:
在这里插入图片描述

1、纯文本

QLabel *pLabel = new QLabel(this);
pLabel->setText("Hello World");
pLabel->setStyleSheet("color: white");
//对齐方式
setAlignment(Qt::AlignCenter);
setStyleSheet("qproperty-alignment: 'AlignBottom | AlignRight';");
//自动换行
setWordWrap(true); //文本过长采用自动换行的方式来显示。
//设置行高
pLabel->setWordWrap(true);
QString strText = QStringLiteral("一去二三里,烟村四五家。亭台六七座,八九十枝花。");
QString strHeightText = "<p style=\"line-height:%1%\">%2<p>";
strText = strHeightText.arg(150).arg(strText);
pLabel->setText(strText);
//省略 如果过长,我们又不想换行,只想把其中一部分省略为…
QString strText = QStringLiteral("一去二三里,烟村四五家。亭台六七座,八九十枝花。");
QString strElidedText = pLabel->fontMetrics().elidedText(strText, Qt::ElideRight, 200, Qt::TextShowMnemonic);
pLabel->setText(strElidedText);
//垂直显示
QString strText = QStringLiteral("一去二三里,烟村四五家。");
pLabel->setText(strText.split("", QString::SkipEmptyParts).join("\n"));
pLabel->setAlignment(Qt::AlignCenter);

2、图像

QPixmap pixmap(":/Images/logo");
pLabel->setPixmap(pixmap);
pLabel->setFixedSize(100, 100);
pLabel->setScaledContents(true);

3、动画

这里我们需要使用另外一个类QMovie来控制动画,start()可以进行播放与stop()则可以停止,也可以通过调用setSpeed()来设置动画的播放速度。

QMovie *pMovie = new QMovie(":/Images/movie");
pLabel->setMovie(pMovie);
pLabel->setFixedSize(135, 200);
pLabel->setScaledContents(true);
pMovie->start();
#include <QMovie>
 QMovie m_move;
 //加载路径
 m_move.setFileName
 (":/misc/APP2_BEEPZIFU/image/qq.gif");
// 指定窗口显示gif
 show.setMovie(&m_move);
 m_move.start();
 m_move.stop();
 m_move.setpause();
//由于没有关闭gif的QMovie类,如果gif是当前窗口全部界面可以直接
this.close();关闭窗口
//如果只是当前窗口的一部分则使用
show.setStyleSheet("background: rgb(250,250,244)"); //设置样式表关闭QMovie
show.setPixmap(QPixmap());

4、数字

如果我们需要显示一个数字,则可以调用setNum(),他可以将内容转换为纯文本。

pLabel->setNum(66.6);

5、超链接

方法一
比较简单,直接调用setOpenExternalLinks(true)即可。

pLabel->setText(QString("<a href = \"%1\">%2</a>").arg("http://blog.csdn.net/liang19890820").arg(QStringLiteral("一去丶二三里")));
pLabel->setOpenExternalLinks(true);

方法二
声明一个槽openUrl,将其与linkActivated信号关联。

pLabel->setText(QString("<a href = \"%1\">%2</a>").arg("http://blog.csdn.net/liang19890820").arg(QStringLiteral("一去丶二三里")));
connect(pLabel, SIGNAL(linkActivated(QString)), this, SLOT(openUrl(QString)));

void MainWindow::openUrl(const QString &link)
{
    QDesktopServices::openUrl(QUrl(link));
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值