简述
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));
}
2444

被折叠的 条评论
为什么被折叠?



