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;
}

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

相关文章

  • C语言使用DP动态规划思想解最大K乘积与乘积最大问题

    C语言使用DP动态规划思想解最大K乘积与乘积最大问题

    Dynamic Programming动态规划方法采用最优原则来建立用于计算最优解的递归式,并且考察每个最优决策序列中是否包含一个最优子序列,这里我们就来展示C语言使用DP动态规划思想解最大K乘积与乘积最大问题
    2016-06-06
  • 基于matlab对比度和结构提取的多模态解剖图像融合实现

    基于matlab对比度和结构提取的多模态解剖图像融合实现

    这篇文章主要介绍了多模态医学图像配准与融合的概念、方法及意义,最后简单介绍了小波变换分析方法。感兴趣的小伙伴可以跟随小编一起学习一下
    2021-11-11
  • 利用Matlab制作三子棋游戏的示例代码

    利用Matlab制作三子棋游戏的示例代码

    三子棋是一种民间传统游戏,又叫九宫棋、圈圈叉叉、一条龙、井字棋等。将正方形对角线连起来,相对两边依次摆上三个双方棋子,只要将自己的三个棋子走成一条线,对方就算输了。本文将用Matlab制作这一经典游戏,感兴趣的可以试一试
    2022-03-03
  • 基于一个简单定长内存池的实现方法详解

    基于一个简单定长内存池的实现方法详解

    本篇文章对一个简单定长内存池的实现方法进行了详细的分析介绍。需要的朋友参考下
    2013-05-05
  • CLOSE_WAIT状态解决方案

    CLOSE_WAIT状态解决方案

    这篇文章主要介绍了CLOSE_WAIT状态解决方案,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • C++实现LeetCode(189.旋转数组)

    C++实现LeetCode(189.旋转数组)

    这篇文章主要介绍了C++实现LeetCode(189.旋转数组),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • vscode分享代码插件Polacode介绍

    vscode分享代码插件Polacode介绍

    这篇文章主要介绍了vscode分享代码插件Polacode的相关知识,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • C语言socket编程开发应用示例

    C语言socket编程开发应用示例

    这篇文章主要介绍了C语言socket编程开发应用,示例简单,大家参考使用吧
    2013-12-12
  • C++数据结构分析多态的实现与原理及抽象类

    C++数据结构分析多态的实现与原理及抽象类

    继承就是可以直接使用前辈的属性和方法。自然界如果没有继承,那一切都是处于混沌状态。多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作
    2022-02-02
  • C语言实现文件操作实例(简单图示讲解)

    C语言实现文件操作实例(简单图示讲解)

    与普通文件载体不同,文件是以硬盘为载体存储在计算机上的信息集合,文件可以是文本文档、图片、程序等等,下面这篇文章主要给大家介绍了关于C语言实现文件操作实例的相关资料,需要的朋友可以参考下
    2023-02-02

最新评论