Qt 框架应用程序下使用jpg图片时不显示现象
1、异常现象描述
在程序中将图片资源放置在同执行程序*.exe统一目录下,在程序中使用QLable下的setPixmap()函数设置背景图片;在win7下正常显示而在win10下不正常。
2、异常现象排查
a、检查图片资源放置路径是否正确,多次确认后无误
b、怀疑是不同系统下路径分割符导致路径错误,调试查看并使用QDir::toNativeSeparators()函数确保不同系统下路径分隔符的正确性;调试确认无误
暂时找不到原因,更换图片展示方式,自定义QWidget,重写paintEvent,在绘图事件函数中绘制图片;尝试后,异常仍然存在
c、通过以上资源路径正确性及图片展示方式尝试后,判断可能与不同系统下图片加载相关库有关系,后查看打包文件后发现随主程序打包的库文件imageformats中所有库均为debug模式库;后更换release的库,最后
在win10 系统下图片正常显示
3、总结
开发环境为win7,且将qt配置到了path环境中,故开发机上jpg图片显示正常;而在win10应用机上,没有qt环境,图片处理只能依靠打包的依赖库,而依赖的库为debug库,导致了图片显示的异常。
今后在程序打包时,一定要注意程序时debug还是release的,并在打包时使用相应的二进制依赖库。