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

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
还有好多都是从网络上各个博客上摘的都忘了连接地址了,原作者还请见谅。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值