这几天写QT程序时遇到个问题,本机编译完成的应用程序的Gif正常显示,但移到其他机器上(ARM9)只有png能正常显示,gif和jpg却无法显示.刚开始以为是资源包的关系,然后以为是路径的关系,最后才发现是其实是插件的关系.

      在Qt的目录下有plugins/p_w_picpathformats这样一个目录,里面有libqgif.so,libqjpeg.so等(Windows下是qgif.dll,qjpeg4.dll等)动态链接库,当在安装过QT的 机器上,这些库能被成功指定调用,所以本机gif能正常显示,当是移到其他没有安装QT的机器时,因为找不到这些库文件,所以导致图片无法显示.

     解决方案如下:

    在应用程序目录下建立plugins/p_w_picpathformats文件夹,将需要的图像支持插件拷贝进去,然后在程序源文件 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();
}

OK,搞定!!