qt 编写的webkit程序发布的时候如何正确显示中文。

做个记录了, 处于崩溃的边缘, 太相信别人的说法了。 看样子技术这个东西还是需要自己去尝试, 才行。

 

qt做的截取webkit界面, 并自动生成图片的功能。 因为我是个newbit, 所以不知道怎么发布程序到一个没有安装qt的机器上面。 

 

查了查网上的各位大侠的资料。

 

明白了有两种发布方式, 一种静态编译, 一种动态加载。

 

静态编译的体积比较大, 而且编译时间比较长, 虽然编译出来是一个独立的文件。 我的工程需要这些特性, 所以放弃了。 就没有再去研究

 

动态加载, 就需要手工把qt安装目录下面的一些dll, 复制到release文件下面, 这样程序独立运行的时候才可以加载到这些动态库。 我采用了

 

最笨的办法, 先运行, 然后程序报错, 看少哪个dll, 然后, 就去copy过来, 这个需要什么其实是src里面具体引用了什么包决定的。

 

解决了运行的问题后, 又碰到了乱码的问题。 开始曾经试过把codes目录下面的 中文动态库复制到 C:/Qt/2010.04/qt/plugins/codecs

 

但是由于什么原因呢? 竟然不行, 不过是听同事说的, 所以自己也就没有去试了, 发布程序的时候就统统发布一个qt的安装程序。 (汗~~~~),

 

直到有一天程序发布越来越多, 这样搞实在不行了。  哪个qt的安装实在太大了, 关键是实施的同事很抵触需要安装的程序。 这个需要手工做

 

的。所以必须解决了。

 

研究半天, 发现解决办法。

 

1、 原有程序不做任何修改, 只需要复制C:/Qt/2010.04/qt/plugins/codecs这个文件夹即可(当然, 要把下面其他文字统统删掉, 特别是小日本的)

 

2、 问题到这一步, 已经可以解决需要安装qt的问题了。 但是这样的话还需要, 在c盘建一个文件夹, 虽然可以程序自动建立, 但是感觉还不是很好的。 于是在程序里面添加。

 

   QApplication app(argc, argv);

QString sPath = app.applicationDirPath();

sPath += QString("/plugins");

app.addLibraryPath(sPath);

 

然在在程序release目录下面建立一个 plugins 的文件夹, 同样 把C:/Qt/2010.04/qt/plugins/ 目录下面的 codecs 文件夹复制过来。

记得啊, 是 codecs文件夹, 不是底层文件。

 

ok, 这样webkit里面的中文可以看到了。 

 

乌拉! 

 

nnd, 绕了这么大一个大圈子, 又绕回来。。。

 

 

不过细细想下, 从以上过程可以看出qt编译出来的程序, 默认情况会自动搜索编写程序时候的qt的lib路径, 不知道是不是有调整的地方。

 

另外就需要再程序里面添加一些用户自定义的lib了。

 

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页