QT 显示动态gif图片

摘要:
在UI上添加一个Qlabel控件,并使用QMovie在Qlabel中播放gif。

在ui界面添加Qlabel控件,在QLabel中使用QMovie播放gif。

#include "WaitDialog.h"
#include<QPainter>
#include<QMovie>

WaitDialog::WaitDialog(QWidget *parent, QString fileName, int picWidth, int picHeight)
    : QWidget(parent)
{
    ui.setupUi(this);

    m_picWidth = picWidth;
    m_picHeight = picHeight;
    this->setFixedSize(m_picWidth,m_picHeight);
    this->setWindowFlags(Qt::Dialog|Qt::FramelessWindowHint);
    this->setAutoFillBackground(true);
    this->setContentsMargins(0,0,0,0);
    ui.label->setContentsMargins(0,0,0,0);
    QMovie*movie=new QMovie(fileName);
    ui.label->setMovie(movie);
    movie->start();
}

WaitDialog::~WaitDialog()
{
}

gif图片在release下不显示问题:

  在Qt的目录下有plugins/imageformats这样一个目录,里面有qgif.dll,qjpeg4.dll等动态链接库,当在安装过QT的机器上,这些库能被成功指定调用,所以本机gif能正常显示;

  当是移到其他没有安装QT的机器时,因为找不到这些库文件,所以导致图片无法显示.

解决方案如下:

  在exe应用程序目录下建立plugins/imageformats文件夹,将需要的图像支持插件拷贝进去;

  在程序源文件main.cpp 的QApplication a(argc, argv);一行前添加如下代码QApplication::addLibraryPath("./plugins");

另:

假如使用资源图片显示,例如:

QMovie* movie = new QMovie(":/display/Resources/loading.gif"); //注意此处路径,可打开qrc 查看图片文件的 resource url,路径需与url一致。

免责声明:文章转载自《QT 显示动态gif图片》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇IDEA常用快捷键和常用插件集成,持续更新......Android权限操作之uses-permission详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

ESXi挂载NFS共享存储

使用万兆交换机,ESXi使用NFS协议连接存储。本文介绍的是通过NFS协议挂载共享存储上的VS01卷,共享存储上已经赋予ESXi主机访问该卷的权限。...

【Lua】使用随机数(转)

游戏中有一个用于创建角色的随机命名功能,它使用随机数。我在网上找到一篇关于在Lua使用随机数的文章。标记它。Lua需要两个函数来生成随机数:数学。randomseed,数学。数学随机种子接收整数n作为随机序列种子。将系统时间视为随机种子是很自然的,也就是说,数学随机——然后连续生成i=1,5do打印结束的随机数,但问题出现了。如果程序在短时间内运行几次,您得...

2.页面绘制和引入组件库uView

文本+背景色的形式,而不是横幅图的形式,可以节省未来的工作量。在index.vue中,关于开关的代码:EFGHIJKLMNOPQRSTUWXYZB˃DEFGHIJKLNNOPQRSTUVWXYZEFGHIJKLMNOPQRSTUVWXYZ导出默认值{data(){return{}},onLoad()},方法:{}}。横幅{width:100%;height:...

Sublime Text3注册激活和部分配置

此时,我们可以输入要安装的插件包ConvertToUTF85。设置中文对齐方式、字体等//设置默认代码“default_encoding”:“UTF-8”,//显示代码“show_encoding”:true,//显示行号“show_line_endings”:true,//设置字号“font_size”:14,//设置字体对齐方式“font_options...

js 设计模式

出乎意料的是,事件只有在离我很近并且需要发布的时候才能执行。5.适配器模式:很像接口传输。例如,后端的数据不能直接用于jsTree。使用适配器模式将数据传输到jsTree格式是编程的基本理念。我平时没注意到,但我不小心用了很多。...

PB各对象常用事件

1.触发窗口中事件名称的时间01.在激活窗口之前激活触发器02。单击触发器03.Close触发器04.CloseQuery在窗口被清除或关闭时触发。...