发布利用 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程序的路径由
改成了
,并将 documentation文件夹放到 .exe所在的目录内。这时又会报下面这个错误
关于这个错误,网上有很多文章介绍处理方法,基本都是拷贝 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大小,基本上全都是发布所需的库文件,严重影响了程序的发布和传播。这个问题有没有什么好的解决办法呢?
发布利用 Qt Assistant来做帮助系统的程序遇到的问题的更多相关文章
- 利用Qt Assistant 定制帮助文档
为了将Qt Assistant定制为自己应用程序的帮助文档浏览器.需要完成以下几步: 一.导入HTML格式的帮助文档 (1)首先,针对自己的应用程序创建HTML格式的帮助文档,请参见<Doxyg ...
- 利用Qt中的ui文件生成PyQt5程序,自定义槽函数
1.在Qt Creator4.8.0上面设计如上.ui文件 2.点击上方图标,可以建立信号-槽连接,button_click()为自定义槽函数 3.设计目的:点击clear按钮,可消除上方文本框中的内 ...
- 利用Qt开发跨平台APP(二)(iOS,使用Qt5.9,很详细,有截图)
本文将手把手教你如何使用Qt编译出iOS应用程序. Qt是一个优秀的跨平台开发工具.我们利用Qt可以很方便地将一次编写的应用,多次编译到不同平台上,如Windows.Linux.MAC.Android ...
- 利用Qt调用计算器
之前有了第一个项目那么很快就会有第二个 这次 我们来调用 一些系统函数. 就不从头写了. 直接写比较重要的地方,如果又不太懂的地方欢迎小纸条或者参见利用 QT制作一个 helloworld http: ...
- 创建文档和自定义的qt assistant
利用qt制作帮助文档 1. 创建文档即是一些html文件,这里可以使用qt提供的工具像是qdoc 和Doxygen生成帮助的html文档. 2. 组织文档结构用于qt ...
- Qt Assistant 的配置文件qhp--->qch 和qhcp--->qhc详解与生成
Qt Assistant 这个exe文件可以被我们利用到我们自己的程序为我们添加help,是一个文档浏览器,它的搜索功能,还有最主要的就是他可以让客户自己定义自己索要显示的文档,也就是qch文档. ...
- 利用碎片化时间Get Linux系统
利用碎片化时间Get Linux系统 起初,我做着一份与IT毫无关系的工作,每月领着可怜的工资,一直想改变现状,但无从下手,也就是大家熟知的迷茫.我相信,每一个人都会或多或少的经历过迷茫,迷茫每一个选 ...
- 利用Qt开发跨平台APP
本文将手把手教你如何在Windows环境下,使用Qt编译出安卓应用程序. Qt是一个优秀的跨平台开发工具.我们利用Qt可以很方便地将一次编写的应用,多次编译到不同平台上,如Windows.Linux. ...
- QMetaEnum利用Qt元数据实现枚举(enum)类型值及字符串转换
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QMetaEnum利用Qt元数据实现枚举(enum)类型值及字符串转换 本文地址:ht ...
随机推荐
- Ubuntu 上 hi3531 交叉编译环境 arm-hisiv100nptl-linux 搭建过程
安装SDK 1.Hi3531 SDK包位置 在"Hi3531_V100R001***/01.software/board"目录下,您可以看到一个 Hi3531_SDK_Vx ...
- JSP常见的7个动作指令
JSP常见的7个动作指令 1.jsp:forward指令 执行页面转向,将请求处理转发到下一个页面 2.jsp:param指令 用于传递参数 3.jsp:include指令 用于动态 ...
- 第一次C语言实验报告
一.实验题目,设计思路,实现方法 实验四4-2-9三个数由小到大输出,要求比较三数大小并按顺序输出.运用穷举法列举所有可能性再对应输出.运用多分支结构. 实验四4-2-4 三天打鱼两天晒网,运用循环结 ...
- Jupyter notebook Tensorflow GPU Memory 释放
Jupyter notebook 每次运行完tensorflow的程序,占着显存不释放.而又因为tensorflow是默认申请可使用的全部显存,就会使得后续程序难以运行.暂时还没有找到在jupyter ...
- 使input文本框不可编辑的3种方法
一:disabled disabled 属性规定应该禁用 input 元素,被禁用的 input 元素,不可编辑,不可复制,不可选择,不能接收焦点,后台也不会接收到传值.设置后文字的颜色会变成灰色.d ...
- 利用SSH端口转发实现跨机器直接访问
在实际项目测试中经常会遇到数据库操作,但是因为公司安全问题,访问数据库往往需要通过跳板机.但通过跳板机,测试效率大打折扣,因此通过使用SSH端口转发,从而达到跨机器直接访问数据库.实际项目中的应用会比 ...
- 已在Terminal安装了包,PyCharm却提示无法找到
想使用python的dpkt包解析pcap文件进行分析,已经按照提示在终端输入sudo apt install python-dpkt,并且显示安装成功. 但是回到PyCharm中依然报错,如图所示: ...
- 【CJOJ P1096】最佳老农
http://oj.changjun.com.cn/problem/detail/pid/1096 Description FJ打算带着他可爱的N (1 ≤ N ≤ 2,000)头奶牛去参加" ...
- Vue-路由配置和使用步骤整理
介绍 路由:控制组件之间的跳转,不会实现请求.不用页面刷新,直接跳转-切换组件>>> 安装 本地环境安装路由插件vue-router: cnpm install vue-rou ...
- 【learning】kd-tree
吐槽 kd-tree这个东西很早就听说过了但是qwq一直没有去了解 (原因的话..啊哈哈听说是什么跟二维平面之类的东西有关的所以就怂掉了qwq没错就是怂qwq) 但其实好像..真的很暴力啊qwq知道思 ...