2014-04-25 19 views
1

我是Ubuntu的新手& Qt。我需要显示其他长时间操作的繁忙状态。所以,我只是试图使用等待的动画gif文件来加载,而不是使用进度条。在Ubuntu中使用QMovie加载动画gif文件

我正在使用Eclipse编辑器进行Qt项目。 Trolltech /../ imageformat文件夹包含libqgif.solibqgif.so.debug。我也已将这些文件复制到我的调试文件夹中。

loader.gif在QRC文件添加和保存在/Resources文件夹

在MainWindow类我添加标签和setupUi(本)被调用后,我打电话给我的ShowMovie()功能如下:

ShowMovie() { 

    QMovie *movie = NULL; 
    movie = new QMovie(":/Resources/loader.gif"); 
    if(movie->isValid()) { 
     ui.label_3->setMovie(movie); 
     movie->start(); 
    } 
    else 
     qDebug()<<"Movie is Invalid"; 
    qDebug()<<QImageReader::supportedImageFormats(); 
} 

始终isValid()函数返回false &我收到电影无效的消息。 最后qDebug()返回

("bmp", "gif", "ico", "jpeg", "jpg", "mng", "pbm", "pgm", "png", "ppm", 
    "svg", "svgz", "tif", "tiff", "xbm", "xpm") 

即意味着GIF支持服务。

我曾尝试在加载主用户界面和/或单击按钮之前调用ShowMovie()函数。两者都失败。

提供有关要纠正的内容的帮助。 谢谢。

回答

0

你不需要复制馆藏档案*.so。 尝试使用loader.gif的完整路径创建影片对象。它工作吗? 然后你还没有正确设置你的资源系统。

无论你在QRC文件中有语法错误,需要加以固定或者你忘了将其添加在项目文件中使用

RESOURCES  = myqresource.qrc 
+0

谢谢你的答案的资源(.pro)。我检查过qrc文件没关系。并将其添加到包含在.pro文件中的.pri文件中。 –

+1

我发现了这个问题。 问题与您说文件未找到相同。当我尝试绝对路径时,它的工作。奇怪的是,我的所有其他图像文件也都在同一个文件夹中,那么为什么gif文件失败了。 我很感谢您的帮助。 –