发布利用 Qt Assistant来做帮助系统的程序遇到的问题

时间:2023-03-08 16:50:24
发布利用 Qt Assistant来做帮助系统的程序遇到的问题

最近,一直在做反演初始模型可视化建模的软件 model Constraint,最后的步骤就是利用 Qt Assistant为自己的程序制作帮助系统。

1.《Qt Creator快速入门》和网上大部分的资料在介绍利用Qt Assistant为自己的程序制作帮助系统时,制作的帮助系统里都没有图片,都是全文字的。而我写的用户手册里面含有一些操作图示,所以需要图片。并且用户手册是用 WPS写的,一些图片就是浮与文字上方。之后转成 HTML文件后,会生成一个 html文件和同名文件夹,里面存放着 png图片。使用浏览器打开时,文字显示没有问题,但图片的位置会发生改变。这是因为图片的位置是相对于word里的坐标系,而在浏览器中显示时,此时的坐标系应是当前浏览器的坐标。所以,位置就不对了。后面参照了 Simple Text Viewer Example的例子,发现其中的html文件内含有图片,并且其是专门用 HTML语言书写的,而不是利用某个软件另存为的。仿照这个例子,实现了html里显示图片的功能,但是嵌在文字中的图片还是无法固定位置。于是就把整个说明内容都截屏为 png图片,放到 html文件内。

2.在制作 qhcp文件时,要为自定义的帮助系统的 “About”窗口定制内容,此时是将文字内容放到 “About.txt”文件内。注意,这一个文件一定要存储为 UTF-8形式。

3.在发布改程序时遇到了个很棘手的问题。

首先,照常将 release模式下生产的 .exe文件 Copy到一个单独的文件夹内,然后打开程序,点击 “Help”按钮,却提示“找不到 qhc”文件。这是因为在 Debug模式下,当前目录为 build-modelConstratint-Desktop_Qt_5_8_0_MSVC2015_64bit-Debug文件夹下;而在 Release模式下,当前目录就是 .exe所在的目录。为了程序发布后文件夹分类有序,所以这里将Assistant类中设置 assistant.exe程序的路径由发布利用 Qt Assistant来做帮助系统的程序遇到的问题改成了发布利用 Qt Assistant来做帮助系统的程序遇到的问题,并将 documentation文件夹放到 .exe所在的目录内。这时又会报下面这个错误发布利用 Qt Assistant来做帮助系统的程序遇到的问题

关于这个错误,网上有很多文章介绍处理方法,基本都是拷贝 platforms文件夹(包括其中的qwindows.dll)到 .exe所在目录。我试了好多次,都还是继续报这个错误。然后我就像往常遇到 Bug时的想法一样,Bug往往不是出在你现在所纠结或认为的地方,网上大多数教程写的都是一样的,并且别人也解决了这个问题。说明你的问题并不出在这里,而是在另一个你不注意的细微的地方。然后我注意到左上角报错窗口的title是 assistant,才意识到不是 modelConstratint.exe文件缺失 DLL,而是 Assistant.exe在运行时缺失 DLL文件。于是将platforms文件夹拷贝到 Assistant.exe目录内,果然解决了这个问题。不过又报了缺失其他 DLL文件的问题,将相应 DLL文件放到 Assistant.exe目录内,最后即可成功运行。

4.最后还有一个不足没有解决,就是我的 modelConstratint.exe只有700KB左右,而整个发布文件夹却有 80MB大小,基本上全都是发布所需的库文件,严重影响了程序的发布和传播。这个问题有没有什么好的解决办法呢?