Qt开发的程序在没有安装Qt环境的机器上可能出现的一些问题,如:除png外的其它类型的图片,如:jpg、ico、bmp等,还有中文乱码等问题,出现这些问题的本质是Qt对这类文件格式或编码格式的支持方式加载插件。
打开Qt安装目录,里面有个plugins文件夹,文件夹里又有很多文件夹,如:codecs、imageformats、sqldrivers等,其中codecs是Qt对除英文以外的各种语言支持的插件,有简体中文、繁体中文、日韩文等;imageformats是Qt对除png外其它图片格式支持的插件,包括gif,ico,jpg等;其它文件夹也一样,一个文件夹是Qt对某方面支持的插件,如果要在没有安装环境的系统上运行Qt开发的程序,而又用到了这方面的东西,如:中文,jpg图片等,就需要让程序能够加载到这些插件,有以下几种办法。
一)将plugins文件夹全部拷贝到目标机器上,位置与你开发程序的机器上plugins目录相同,如你开发电脑上Qt安装在C:\Qt,那plugins文件夹放在目标机器上的C:\Qt\plugins。
二)将plugins文件夹全部你的工程MyApp目录下,在工程的main.cpp文件中加入以下代码:
QApplication a(argc, argv);
QString sPath = a.applicationDirPath();
sPath += QString("/plugins");
a.addLibraryPath(sPath);
编译生成的exe和plugins一起放在目标机器的同一文件夹下即可。