QLabel 字体大小、颜色、图片的应用(整理)

来源:互联网 发布:cit是什么软件 编辑:程序博客网 时间:2024/05/19 10:10

QLabel 控件 提供了一个文本或图片的显示。
QLabel 是用来显示一个文本或一个图像。没有用户交互功能提供。标签的外观可以通过各种方式配置,它可以用于其他窗口的助记键指定焦点。
QLabel的继承关系为
QObject Class and QPaintDevice Class->QWidget Class->QFrame Class->QLabel Class
创建一个QLabel对象:

    QLabel * label = new QLabel(this); // 创建堆对象

显示文本:

    label->setText("some text");    // 或    label->setText(str);

显示图片:

    QPixmap pix = QPixmap("E:\QTpro\farmer\1.png");    label->setPixmap(pix);    // 或    label->setPixmap(QPixmap("E:\\QTpro\\farmer\\1.png"));    // 或    QImage * image = new QImage("./pic.jpg");      label->setPixmap(QPixmap::fromImage(image));    //中途换图片    image->load("./pic2.jpg");      label->show();

显示动画:

    QMovie* movie = new QMovie("new.png"); //绘制jpeg的图片也是可以的    // 或    QMovie* movie = new QMovie("new.gif"); //绘制动画也是可以的    movie->start();    label.setMovie(movie);

设置框架样式(setFrameStyle函数由QFrame继承),对齐方式,

    label->setFrameStyle(QFrame::NoFrame | QFrame::Raised); // 设置框架样式    label->setAlignment(Qt::AlignCenter);// 设置对齐方式为居中

设置字体颜色有四种方法:
第一种是使用setPalette()方法:

    QPalette palette = label->palette(); // 获取调色板    palette.setColor(QPalette::WindowText, QColor(Qt::red)); // 设置字体颜色  // 或  // 使用QMovie时要设置QLabel背景透明,  palette.setColor(QPalette::Background, QColor(0x00, 0xff, 0x00, 0x00));   label->setPalette(palette);         // 设置调色板

第二种是使用样式表:

    label->setStyleSheet("color:red;");     label->setStyleSheet("color:#ff6600;");

第三种是可以使用QStyle(没用过):
在Qt Demo中有一个很好的讲解QStyle的例子,可以参考学习。
第四种是使用HTML样式:

    label = new QLabel("<h2><i>Hello</i><font color=red>Qt!</font></h2>");

设置字体,大小:

    QFont font;    font.setPointSize(12); // 设置字号    label->setFont(font);  // 设置字体    // 或    label.setFont(QFont("Timers", 28, QFont::Bold));

自动适应文本的大小:

    label->adjustSize();

设置QLabel显示位置:

  label->setGeometry(x,y,w,h );

自动判断并换行:

    label->setGeometry(QRect(328, 240, 329, 27*4));  //四倍行距    label->setWordWrap(true);    label->setAlignment(Qt::AlignTop);

设置不显示任务栏

    label->setWindowFlags(Qt::FramelessWindowHint); //设置不显示任务栏

设置快捷键(官方给的代码):

    QLineEdit *phoneEdit = new QLineEdit(this);    QLabel *phoneLabel = new QLabel("&Phone:", this);    phoneLabel->setBuddy(phoneEdit);    // 则可以通过“ALT+P”激活phoneEdit

清空标签内容:

    label->clear();

超链接设置
一种是打开外部连接功能:

    lebel->setOpenExternalLinks(true); // 关键    lebel->setText("<a href=\"http://www.csdn.net/\">CSDN</a>");    label.show();

一种是

    label->setText("<a href=\"http://www.csdn.net/\">CSDN</a>");    label->setFixedSize(200,100);    label->move(10,10);    label->show();    connect(label, SIGNAL(linkActivated(QString)), this, SLOT(openUrl(QString)));  //   在.h里面定义一个槽private slots: //   void openUrl(QString url);void Widget::openUrl(QString url){    QDesktopServices::openUrl(QUrl(url));}

借鉴:
Qt入门-QLabel类http://blog.csdn.net/xgbing/article/details/7762331
[喝小酒的网摘]http://blog.const.net.cn/a/12615.htm
QT 实现QLabel上的超链接http://blog.csdn.net/robertkun/article/details/20562341
Qt帮助:Qt 5.4->Qt Widgets->C++ Classes->QLabel
还有好多都是从网络上各个博客上摘的都忘了连接地址了,原作者还请见谅。

0 0
原创粉丝点击