问题描述:在qt开发环境下,使用qss进行界面美化工作,里面包含许多图片资源。最后项目决定把这些图片资源和代码一起打包。然后就把图片资源和qss文件一起编入qrc文件中进行编译。在本机开发环境下是没有任何显示的问题的,但是在裸机环境下就出现了图片显示不正常,而色彩显示正常的问题。
问题分析:通过把图片资源嵌入到qrc文件中,Qt的rcc.exe会根据qrc文件生成moc文件。当程序运行中,这些图片就加载到内存中。需要使用这些图片资源时可以直接读取,而不需要通过IO方式去读取磁盘的资源,可以提高反应速度,是一个使用内存空间换取反应时间的方式。对于其中的图片资源,qt程序读取时需要一些与图片相关的动态库。这些动态库在qt的安装目录中就有,具体的位置在qt安装目录下的plugins文件中,里面有关图片的库和数据库的库等等。
解决办法:在程序的执行目录下添加qt相关的图片库。把plugins目录下的imageformats目录放入你的程序执行目录下即可。如果还解决不了问题,你可以指定库的目录。
具体的函数为 void QCoreApplication::addLibraryPath ( const QString & path ) [static]