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

 更新时间:2022年11月10日 17:16:38   作者:在广州的阿杰  
这篇文章主要介绍了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;
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • VS2019+Opencv4.0+Win10配置详解

    VS2019+Opencv4.0+Win10配置详解

    这篇文章主要介绍了VS2019+Opencv4.0+Win10配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • C++使用alsa库实现播放声音文件

    C++使用alsa库实现播放声音文件

    这篇文章主要为大家详细介绍了Linux系统上C++如何使用alsa库播放声音文件,文中示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-04-04
  • C语言实现九大排序算法的实例代码

    C语言实现九大排序算法的实例代码

    这篇文章主要给大家介绍了关于C语言实现九大排序算法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • c++ error:crosses initialization of问题解决分析

    c++ error:crosses initialization of问题解决分析

    这篇文章主要介绍了c++ error:crosses initialization ofde 问题解决分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • AVX2指令集优化整形数组求和算法

    AVX2指令集优化整形数组求和算法

    这篇文章主要为大家介绍了AVX2指令集优化整形数组求和算法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • C++ LeetCode1781题解所有子字符串美丽值之和

    C++ LeetCode1781题解所有子字符串美丽值之和

    这篇文章主要为大家介绍了C++ LeetCode1781题解所有子字符串美丽值之和,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • c++ 中vector 常见用法

    c++ 中vector 常见用法

    这篇文章主要给大家分享的是c++ 中vector 常见用法,,vector有两个参数,一个是size,表示当前vector容器内存储的元素个数,一个是capacity,表示当前vector在内存中申请的这片区域所能容纳的元素个数,下面来看看文章的详细内容,需要的朋友可以参考一下
    2021-11-11
  • C语言设置和取得socket状态的相关函数用法

    C语言设置和取得socket状态的相关函数用法

    这篇文章主要介绍了C语言设置和取得socket状态的相关函数用法,分别是setsockopt()函数和getsockopt()函数的使用介绍,需要的朋友可以参考下
    2015-09-09
  • opencv平均背景法详解

    opencv平均背景法详解

    这篇文章主要为大家详细介绍了opencv平均背景法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • C++超详细讲解智能指针

    C++超详细讲解智能指针

    为了解决内存泄漏的问题,C++中提出了智能指针。内存泄漏的产生原因有很多,即使我们正确的使用malloc和free关键字也有可能产生内存泄漏,如在malloc和free之间如果存在抛异常,那也会产生内存泄漏。这种问题被称为异常安全
    2022-06-06

最新评论