我是在QLabel中显示图片的,没有使用qrc,直接用的相对路径,调试的时候正常,但发布出去,QLabel总是显示不了图片,我打印过调试信息,图片的路径没有错,图片文件可以在Qt中找到,但就是不显示,debug版和release版都如此。
google了下,发现原来发布的时候没有连同Qt安装路径下plugins/imageformats一起发布:
把imageformats文件夹拷贝到你要发布的exe文件的同一级目录下就行了~
你如果仔细观察plugins/imageformats文件夹里的dll和lib的话,会发现,
1、没有BMP图片文件对应的dll和lib
2、每种出现的图片格式的dll和lib,都有两个版本,release版(名字中没有d的,如qgif4.dll)和debug版(名字中含有d的,如qgifd4.dll)
所以,
1、如果你显示的是BMP格式的图片,则不需要plugins/imageformats文件夹里的dll和lib;
2、如果发布release版,就把release的dll和lib一起发布就好了;反之,只发布debug版的dll和lib;
3、项目中用到哪种格式的图片文件,就只需要发布该文件对应的dll和lib。当然,如果只用到了BMP格式的图片,那么就不用plugins/imageformats文件夹里的dll和lib。
参见: