最近,一直在做反演初始模型可视化建模的软件 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. angular路由操作

    在单页面应用程序中比如angular应用,我们需要根据url的变化(即:不同的请求),来分配不同的资源.根据请求的URL来决定执行哪个模块,这个过程叫路由,同时,我们需要设计路由规则. 下面给出一个简 ...

  2. Tomcat下使用Druid配置JNDI数据源

    com.alibaba.druid.pool.DruidDataSourceFactory实现了javax.naming.spi.ObjectFactory,可以作为JNDI数据源来配置. 一.下载D ...

  3. HDU 1392 Surround the Trees(凸包)

    题面 懒得粘贴了... 大致题意:坐标系内有若干个点,问把这些点都圈起来的最小凸包周长. 题解 直接求出凸包,统计一遍答案即可 #include<iostream> #include< ...

  4. [luogu3412]仓鼠找sugar II

    题面在这里 题意 给定一棵树(\(n\le10^5\)),仓鼠随机选择起点和终点,之后从起点开始随机游走,每次都会等概率地选择和其相邻的任一道路,直到到达终点,求到达终点时步数的期望 sol 因为这一 ...

  5. angularjs中的下拉框默认选中

    1.  ng-init  属性: <!DOCTYPE html> <html> <head> <meta charset="utf-8"& ...

  6. mvc-dispatchar-servlet.xml文件报错

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  7. 【python学习笔记】6.抽象

    [python学习笔记]6.抽象 创建函数: 使用def语句定义函数,不用声明参数类型,和返回值类型 def function_name(param1, param2): 'this is docum ...

  8. eclipse热部署web项目

    一.选中JavaEE视图 因为在普通的Java视图下,窗口下方没有server选项卡 二.双击Tomcat 注意:可能很多人当然包括我一开始的时候,都是喜欢右键Tomcat然后Add and remo ...

  9. c#缓存技术(Dictionary)

    无论任何时候,只要传递的参数一致,返回的结果都应该是一致的.这样的函数我们才能够利用缓存.首先我们先定义一个函数,而这个函数将会是我们后面需要缓存的函数: 然后我们修改函数使之能够进行缓存: 这里我们 ...

  10. Facebook兆级别图片存储及每秒百万级别图片查询原理

    前言 Facebook(后面简称fb)是世界最大的社交平台,需要存储的数据时刻都在不断剧增(占比最大为图片,每天存储约20亿张,大概是微信的三倍). 那么问题来了,fb是如何存储兆级别的图片?并且又是 ...