《Qt5+QLabel显示文本、图片、GIF》

QLabel类可用于显示文本或者图像(包括pixmap、movie、picture),以及电话号码等。 pixmap就是像素图,例如png、jpg、jpeg等常见的的像素格式图片都可以显示;movie指的是播放GIF动图而不是视频;picture是自己绘制的的图。这篇博文主要是显示文本、pixmap图片、GIF动图。如果要显示视频需要先将视频的帧转化为QImage类型,然后就可以作为pixmap显示到标签上面了,我的另一篇博文有示例:

博文链接:

https://blog.csdn.net/mars_xiaolei/article/details/83317032

 

 示例代码


打开Qt,新建一个Qt Widgets Application项目,转到设计师模式,从左侧工具栏添加控件到窗口上,调整控件的大小和位置,然后添加如下代码:

mainwindow.h 

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
private slots:
    void StartGif();
    void StopGif();
    void WriteText();
    void ClearText();

private:
    Ui::MainWindow *ui;
    QMovie *movie;
};

#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QMovie"



MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->pushButton->setEnabled(true);
    ui->pushButton_2->setEnabled(false);
    ui->pushButton_3->setEnabled(false);
    ui->pushButton_4->setEnabled(true);

    connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(StartGif()));
    connect(ui->pushButton_2,SIGNAL(clicked()),this,SLOT(StopGif()));
    connect(ui->pushButton_4,SIGNAL(clicked()),this,SLOT(WriteText()));
    connect(ui->pushButton_3,SIGNAL(clicked()),this,SLOT(ClearText()));

    //ui->pushButton->setFlat(true);//背景透明
    ui->pushButton->setStyleSheet("QPushButton{background-color: rgba(255,100,255,20%);color: white;font: 12pt 微软雅黑;}");
    //ui->pushButton->setStyleSheet("QPushButton{background-color: yellow;background: transparent;color: red;}");
    //ui->pushButton_2->setFlat(true);
    ui->pushButton_2->setStyleSheet("QPushButton{background-color: rgba(255,255,100,20%);color: white;font: 12pt 微软雅黑}");
    ui->label_2->setStyleSheet("QLabel{background-color: rgba(85, 170, 255,20%);font: 20pt 幼圆;}");
    ui->pushButton_3->setStyleSheet("QPushButton{background-color: rgba(100,100,255,20%);color: white;font: 10pt 微软雅黑;}");
    ui->pushButton_4->setStyleSheet("QPushButton{background-color: rgba(100,100,255,20%);color: white;font: 10pt 微软雅黑;}");

    QPixmap pixmap(":/images/琴女.jpg");
    pixmap.scaled(QSize(ui->label->width(),ui->label->height()),Qt::KeepAspectRatioByExpanding);
    ui->label->setPixmap(pixmap);
    ui->label->show();

    movie=new QMovie();
    ui->label_2->setText("       欢迎来到GIF频道!");

    //ui->label_3->hide();隐藏
    ui->label_3->setWordWrap(true);//设置换行
}

MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::StartGif()
{
    movie->setFileName(":/images/2.gif");
    ui->label_2->setMovie(movie);
    movie->start();
    ui->pushButton->setEnabled(false);
    ui->pushButton_2->setEnabled(true);
}
void MainWindow::StopGif()
{
    movie->stop();
    ui->pushButton->setEnabled(true);
    ui->pushButton_2->setEnabled(false);
}
void MainWindow::WriteText()
{
    ui->label_3->setText("Hello World ! Hello World ! Hello World ! Hello World ! Hello World !");
    ui->pushButton_3->setEnabled(true);
    ui->pushButton_4->setEnabled(false);
}
void MainWindow::ClearText()
{
    ui->label_3->clear();//清除内容
    ui->pushButton_3->setEnabled(false);
    ui->pushButton_4->setEnabled(true);
}

 

完整代码


直接下载,然后打开pro运行就OK了

链接:https://pan.baidu.com/s/1OgxcVyQwUhwBWxxxCMRltQ 
提取码:7glj 

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值