最近,一直在做反演初始模型可视化建模的软件 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来做帮助系统的程序遇到的问题的更多相关文章

  1. 利用Qt Assistant 定制帮助文档

    为了将Qt Assistant定制为自己应用程序的帮助文档浏览器.需要完成以下几步: 一.导入HTML格式的帮助文档 (1)首先,针对自己的应用程序创建HTML格式的帮助文档,请参见<Doxyg ...

  2. 利用Qt中的ui文件生成PyQt5程序,自定义槽函数

    1.在Qt Creator4.8.0上面设计如上.ui文件 2.点击上方图标,可以建立信号-槽连接,button_click()为自定义槽函数 3.设计目的:点击clear按钮,可消除上方文本框中的内 ...

  3. 利用Qt开发跨平台APP(二)(iOS,使用Qt5.9,很详细,有截图)

    本文将手把手教你如何使用Qt编译出iOS应用程序. Qt是一个优秀的跨平台开发工具.我们利用Qt可以很方便地将一次编写的应用,多次编译到不同平台上,如Windows.Linux.MAC.Android ...

  4. 利用Qt调用计算器

    之前有了第一个项目那么很快就会有第二个 这次 我们来调用 一些系统函数. 就不从头写了. 直接写比较重要的地方,如果又不太懂的地方欢迎小纸条或者参见利用 QT制作一个 helloworld http: ...

  5. 创建文档和自定义的qt assistant

    利用qt制作帮助文档 1.         创建文档即是一些html文件,这里可以使用qt提供的工具像是qdoc 和Doxygen生成帮助的html文档. 2.         组织文档结构用于qt ...

  6. Qt Assistant 的配置文件qhp--->qch 和qhcp--->qhc详解与生成

      Qt Assistant 这个exe文件可以被我们利用到我们自己的程序为我们添加help,是一个文档浏览器,它的搜索功能,还有最主要的就是他可以让客户自己定义自己索要显示的文档,也就是qch文档. ...

  7. 利用碎片化时间Get Linux系统

    利用碎片化时间Get Linux系统 起初,我做着一份与IT毫无关系的工作,每月领着可怜的工资,一直想改变现状,但无从下手,也就是大家熟知的迷茫.我相信,每一个人都会或多或少的经历过迷茫,迷茫每一个选 ...

  8. 利用Qt开发跨平台APP

    本文将手把手教你如何在Windows环境下,使用Qt编译出安卓应用程序. Qt是一个优秀的跨平台开发工具.我们利用Qt可以很方便地将一次编写的应用,多次编译到不同平台上,如Windows.Linux. ...

  9. QMetaEnum利用Qt元数据实现枚举(enum)类型值及字符串转换

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QMetaEnum利用Qt元数据实现枚举(enum)类型值及字符串转换     本文地址:ht ...

随机推荐

  1. freemarker.template.TemplateException:Macro has no such argument:params

    1.错误描述 freemarker.template.TemplateException:Macro mainSelect has no such argument:params 2.错误原因 在宏定 ...

  2. Codeforces Round #467 (Div. 1) B. Sleepy Game

    我一开始把题目看错了 我以为是博弈.. 这题就是一个简单的判环+dfs(不简单,挺烦的一题) #include <algorithm> #include <cstdio> #i ...

  3. CF367 E - Working routine

    十字链表模拟 #include<bits/stdc++.h> using namespace std; int n,m,q; struct Node{ int v; int d,r; }m ...

  4. Docker 入门之swarm部署web应用

    笔者近期在利用的docker搭建一个swarm集群,目前的应用还是入门级的,读者可自行根据自己的需要修改自己需要部署的应用,今天笔者介绍的是一个web应用的swarm集群的搭建.看这篇文章之前,我希望 ...

  5. 微信开发中access_token,js_ticket,时间戳,签名生成工具

    Access_token生成工具 工具地址:https://mp.weixin.qq.com/debug 这个工具主要用来验证和生成微信公众号access_token,主要有正确的app_id和app ...

  6. 同一张表省市县sql查询

    一,表的结构 SELECT * FROM t_unionpay_areacode t SELECT * FROM t_unionpay_areacode t WHERE t.`name`LIKE &q ...

  7. Python编程核心内容之一——Function(函数)

    Python版本:3.6.2  操作系统:Windows  作者:SmallWZQ 截至上篇随笔<Python数据结构之四--set(集合)>,Python基础知识也介绍好了.接下来准备干 ...

  8. 【BZOJ1087】【SCOI2005】互不侵犯(状态压缩,动态规划)

    题面 这种傻逼题懒得粘贴了... 题解 傻逼题 \(f[i][j][k]\)表示当前第\(i\)列,当前放置状态为\(j\),已经放了\(k\)个 暴力判断状态合法性,暴力判断转移合法性,然后统计答案 ...

  9. 【洛谷1032 】【CJOJ1711】【NOIP2002】字串变换

    ###题目描述 已知有两个字串 A, B 及一组字串变换的规则(至多6个规则): A1 -> B1 A2 -> B2 规则的含义为:在 A$中的子串 A1 可以变换为 B1.A2 可以变换 ...

  10. BSGS算法(大步小步算法)

    计算\(y^x ≡ z \ mod\ p\) 中 \(x\) 的解. 这个模板是最小化了\(x\) , 无解输出\(No \ Solution!\) map<ll,ll>data; ll ...