Qt显示QImage图像在label上,并保持自适应大小问题

发布时间:

这篇文章主要介绍了Qt显示QImage图像在label上,并保持自适应大小问题,具有很好的参考价值,希望对大家有所帮助。

Qt显示QImage图像在label上,并保持自适应大小

Qt使用label显示图像的方式:

//将QImage的大小收缩或拉伸,与label的大小保持一致。这样label中能显示完整的图片
QImage imageScale = image.scaled(QSize(ui->label_Pixmap->width(), 
ui->label_Pixmap->height()));
QPixmap pixmap = QPixmap::fromImage(imageScale);
ui->label_Pixmap->setPixmap(pixmap);

Qt使用Label控件显示图片及动图

1.显示图片

资源加载流程

  • 右键点击widget.cpp,选择在Explorer中显示
  • 将装有图片的image文件夹放入打开的路径中
  • 右键项目名称->添加新文件->Qt->Qt Resource File->取名为res
  • 添加前缀 / ->添加文件->选择image文件夹下的所有图片
  • 编译(构建项目)一下,图片就显示在项目中了
  • 需要再次打开.qrc文件时:右键.qrc->Open in Editor

在ui界面加入Lable控件

编译代码

//写在widget.cpp中
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    //将Lable控件的名字取为lbl_image
    //Qt中的图片资源不叫picture,叫pixmap
    ui->lbl_image->setPixmap(QPixmap(":/image/1.jpg"));
}

Widget::~Widget()
{
    delete ui;
}

2.显示动图

动图必须为gif格式

  • 资源加载流程(同上)
  • 在ui界面加入Lable控件
  • 编译代码
//写在widget.cpp中
#include "widget.h"
#include "ui_widget.h"
#include <QMovie>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    //将Lable控件的名字取为lbl_image
    QMovie * mmovie = new QMovie(":/image/2.gif");
    ui->lbl_movie->setMovie(mmovie);
    //动图得播放才有效果
    mmovie->start();
}

Widget::~Widget()
{
    delete ui;
}