• QT中显示动画



    在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();
    }






  • 相关阅读:
    P6Spy 监控JDBC详细配置说明
    apache mina2.0核心架构
    Window.open
    FLEX做的网站
    采用CSS让DIV在网页中水平垂直居中
    VSFTP成功安装访问被拒绝问题 500 OOPS: cannot change directory:/home/ftp
    SvnServe(1.7)服务器配置
    运行 Flash builder 4.5 弹出对话框 failed to create the java virtual machine 解决方法
    c++中的隐藏、重载、覆盖(重写)
    golang/net/http
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/3687878.html
Copyright © 2020-2023  润新知