• 7895阅读
  • 2回复

Qt4如何加载".gif"动态图像文件? [复制链接]

上一主题 下一主题
离线onglus
 
只看楼主 倒序阅读 楼主  发表于: 2009-09-19
— 本帖被 XChinux 执行加亮操作(2009-09-19) —
       我想实现动态加载".gif"文件的功能,但是,却遇到了问题,找了很多资料也没解决,有劳大家一起来帮我看看是什么原因造成的?
    我的做法是首先在Resource File工程文件里面添加一个.gif文件,然后,用下面的代码来加载这个动画文件:
    QFile *animationFile=new QFile(":/new/prefix1/smallbear.gif");
        if(!animationFile->open(QIODevice::ReadOnly))
               return;
        QMovie *startPlayAnimation=new QMovie(animationFile);
        ui->movieLabel->setMovie(startPlayAnimation);
        startPlayAnimation->setFileName(animationFile);//问题出在第六行这里,详细请看下面备注
        startPlayAnimation->start();
        (备注:这里我不知道要怎么设置转换才好,因为setFileName只支持QString类型的字符,而animationFile是一个文件。我曾试过把文件转换成字符类型,可是会出错)
         现在,请大家帮我看看是什么原因?在此谢过了,想来我的Qt4编程群(71555992)的也可以加入进来一起讨论。
Qt高阶编程交流群71555992,进群条件是非常勿扰。
离线XChinux

只看该作者 1楼 发表于: 2009-09-19
不会这么麻烦吧?下面的代码运行通过。


#include <QtCore>
#include <QtGui>

int main(int argc, char **argv)
{
    QApplication app(argc, argv);
    QLabel label;
    label.setMovie(new QMovie("aaa.gif"));
    label.show();
    label.movie()->start();
    return app.exec();
}
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线onglus
只看该作者 2楼 发表于: 2009-09-19
   呵呵,这个问题问完之后我又用了一种方法,现在功能也已经实现了。我只用了这么一段代码:
  ui->movieLabel->setMovie(movie);
    movie->setFileName(":/new/prefix1/StartupAnimation.gif");
    movie->start();
   不过十分感谢二楼的朋友。
Qt高阶编程交流群71555992,进群条件是非常勿扰。
快速回复
限100 字节
 
上一个 下一个