在QT中要显示GIF图片,不能通过单单的添加部件来完成.
还需要手动的编写程序.
工具:QT Creator
新建一个工程,我们先在designer中,添加一个QLabel部件.
 将QLabel拉成适当大小.
在类cpp函数中添加如下程序:
#include "widget.h"
#include "ui_widget.h"
#include <QLabel>
#include <QMovie>

Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
QMovie *movie = new QMovie("D:/Project/Qt/testclass/2.gif");
ui->label->setMovie(movie);
movie->start();
}

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

这里要注意QMovie中的路径名:"D:/Project/Qt/testclass/2.gif" 这里的路径斜杠和WINDOWS下是相反的.WINDOWS下默认是反斜杠.

编译,运行就没有问题,就会看到GIF文件在播放了.

当文档GIF图片显示:
#include <QtGui/QApplication>
#include <QLabel>
#include <QMovie>

int main(int argc,char *argv[])
{
QApplication app(argc,argv);

QLabel *label = new QLabel();
QMovie *movie = new QMovie("D:/Project/Qt/firstQT/2.gif");
label->setMovie(movie);
movie->start();
label->show();

return app.exec();
}

//动画无法显示
 本机编译完成的应用程序的Gif正常显示,但移到其他机器上只有png能正常显示,gif和jpg却无法显示.刚开始以为是资源包的关系,然后以为是路径的关系,最后才发现是其实是插件的关系.
在Qt的目录下有plugins/imageformats这样一个目录,里面有qgif.dll,qjpeg4.dll等动态链接库,当在安装过QT的机器上,这些库能被成功指定调用,所以本机gif能正常显示,当是移到其他没有安装QT的机器时,因为找不到这些库文件,所以导致图片无法显示.

解决方案如下:

在应用程序目录下建立plugins/imageformats文件夹,将需要的图像支持插件拷贝进去,然后在程序源文件main.cpp 的QApplication a(argc, argv);一行前添加如下代码QApplication::addLibraryPath("./plugins"); 最后看起来应该像这样:
int main(int argc, char *argv[])
{
QApplication::addLibraryPath("./plugins");

QApplication a(argc, argv);

QtAllTest w;
w.show();
return a.exec();
}

QT中显示动画的更多相关文章

  1. QT中显示GIF图片

    在QT中要显示GIF图片,不能通过单单的添加部件来完成. 还需要手动的编写程序. 工具:QT Creator 新建一个工程,我们先在designer中,添加一个QLabel部件. 如下图: 将QLab ...

  2. QT中显示gif图片方法

    movie = new QMovie(":/timg.gif"); movie->setScaledSize(QSize(,)); ui->giflabel->s ...

  3. QT中循环显示图片和简单的显示图片

    请关注我的github https://github.com/linqiaozhou 以下实例代码不久后将会上传到我的github 这是我最近一个项目中的部分代码 //以下是简单的在QT中显示图片的代 ...

  4. Qt中图像的显示与基本操作

    Qt可显示基本的图像类型,利用QImage.QPxmap类可以实现图像的显示,并且利用类中的方法可以实现图像的基本操作(缩放.旋转). 1. Qt可显示的图像类型 参考Qt的帮助文档,可支持的类型,即 ...

  5. Qt中在图片上叠加显示文字

    Qt中在图片上叠加显示文字   QCustLabel::QCustLabel(QWidget *parent):QLabel(parent){ setPixmap(QPixmap(QString::f ...

  6. Qt中QWidget加入到父类QWidget不能显示的问题

    最近忙活了半天发现了一个不容易发现的问题,比如我有一个父类的自定义Widget,并且自己设置了Pattle,但这个时候我如果再在当前Widget内部加入自己的widget就不能正常显示,但是加QPus ...

  7. QT中关于窗口全屏显示与退出全屏的实现

    近期在学习QT时遇到了很多问题这也是其中一个,个人通过在各种书籍和网络上的查阅找到了一些关于这方面的答案,希望能给大家一些帮助. 首先,在QT中对于窗口显示常用的有这么几个方法可以调用: Qt全屏显示 ...

  8. 【转载】Qt中图像的显示与基本操作

    Qt可显示基本的图像类型,利用QImage.QPxmap类可以实现图像的显示,并且利用类中的方法可以实现图像的基本操作(缩放.旋转). 参考:Qt中图像的显示与基本操作 - ykm0722的专栏 - ...

  9. [OpenCV Qt教程] 在Qt图形界面中显示OpenCV图像的OpenGL Widget(第二部分)

    本文译自:http://www.robot-home.it/blog/en/software/tutorial-opencv-qt-opengl-widget-per-visualizzare-imm ...

随机推荐

  1. 使用PLSQL工具连接远程Oracle

    在不安装Oracle的情况下使用PLSQL连接远程的数据库步骤: 1)官网下载Instant client工具包 http://www.oracle.com/us/solutions/index-09 ...

  2. UVA572 (并查集解法)

    紫书第六章的题,用并查集重写一遍,果然还是书上给的dfs方法更简单...... 一开始用fa[i*m+j] != i*m+j 来判断是否访问过,虽然没想出来为什么WA,但是确实不如用vis稳 #inc ...

  3. 怎么查看二进制文件内容?linux下nm命令告诉你!

    linux下强大的文件分析工具 -- nm 什么是nm nm命令是linux下自带的特定文件分析工具,一般用来检查分析二进制文件.库文件.可执行文件中的符号表,返回二进制文件中各段的信息. 目标文件. ...

  4. markdown里面编辑代码

    转:http://c.biancheng.net/view/6623.html ------------------------------------------------------------ ...

  5. MarkDowm——语法篇

    前言 文档地址: http://www.markdown.cn/ 为了自己更熟悉MarkDown的语法,做个练习吧,以后博文打算用MarkDown直接写了. 标题 Markdown 支持两种标题的语法 ...

  6. 关于redis的持久化策略

    Redis的持久化 Redis虽然是基于内存的存储系统,但是它本身是支持内存数据的持久化的,而且提供两种主要的持久化策略:RDB快照和AOF日志. Redis的RDB快照 Redis支持将当前数据的快 ...

  7. 优先队列priority_queue详解

    转载链接

  8. 业需软需word小技巧

    首先要看看word格式模板设计规则 一.页面材料格式模板  1. 页边距:上下边距为2.54cm:左右边距为2.8cm 2. 页眉.页脚:页眉为1.5cm:页脚为1.75cm 3. 行间距:20p行距 ...

  9. Dubbo源码分析(3):ExtensionFactory

    通过ExtensionFactory的getExtension方法获取目标对象.ExtensionFactory实现有两个,一个基于SPI的,一个Spring的ApplicationContext的. ...

  10. python不使用系统库中的排序方法判断一个数组是否是有序数组

    2. 给定一组整数, 已知其每两个数都互不相同,判断这些数字是否能排成一个有序的数组? 例:li = [1,3,4,2] 是有续的 可以排序为li =[1,2,3,4] li = [2,4,6,8] ...