发布利用 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 ...
随机推荐
- 【BZOJ4372】烁烁的游戏(动态点分治)
[BZOJ4372]烁烁的游戏(动态点分治) 题面 BZOJ 大意: 每次在一棵书上进行操作 1.将离某个点u的距离不超过d的点的权值加上w 2.询问单点权值 题解 这题和前面那一道震波几乎是一模一样 ...
- 【BZOJ1012】【JSOI2008】最大数(线段树)
[JSOI2008]最大数 题目描述 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值. 限制:L不超过当前 ...
- mysql的conv的用法
这次的ctf比赛用到这个函数,这里记录一下 题目禁了ascii , ord 那就使用conv 这个函数是用来将字符转换进制的,例如将a转成ASCII码(换个说法就是将16进制的a换成10进制) 那就直 ...
- 【bzoj2151】种树
Time Limit: 1000ms Memory Limit: 128MB Description A城市有一个巨大的圆形广场,为了绿化环境和净化空气,市政府 ...
- ajax错误处理 500错误
在使用ajax请求的时候 ,如果服务器返回的是500错误,或者其他非正常的http错误状态码时 会提示下面的错误 而我们需要把错误信息处理出来 $.ajax({ type:'get', url:&q ...
- SAPUI5 freestyle vs SAP Fiori Elements —— 两种开发SAP UI5 Apps的方式对比
概述 目前SAPUI5 SDK 提供了两种方式来开发一个SAPUI5 App.一种方式是传统的SAPUI5开发方式,一种是利用SAP Fiori Elements通过模板快速构建应用的方式. 本文简单 ...
- 大三小学期 Android开发的一些经验
1.同一个TextView几种颜色的设置: build=(TextView)findViewById(R.id.building); SpannableStringBuilder style = ne ...
- MongoDB 搭建文件存储的方案
用云的话,节省你开发成本,快速上线,数据比较安全.缺点是一旦用了他们的,形成习惯以后,数据想迁移就会比较麻烦,你会越来越依赖,而且规模上去以后价格并不低.早年自己做的话,你需要实现分布式文件系统,这个 ...
- 用JavaScript写一个区块链
几乎每个人都听说过像比特币和以太币这样的加密货币,但是只有极少数人懂得隐藏在它们背后的技术.在这篇博客中,我将会用JavaScript来创建一个简单的区块链来演示它们的内部究竟是如何工作的.我将会称之 ...
- JavaScript 数组基础知识
// Array 类型: // 检测数组: // console.log(myarr instanceof Array) //true // toString()方法会返回由数组中每个值的字符串形式拼 ...