基于Qt Assistant制作软件帮助文档
Posted 朝闻道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Qt Assistant制作软件帮助文档相关的知识,希望对你有一定的参考价值。
Qt Assistant是Qt自带的一款可定制、可重新发行的帮助文件浏览器。Qt Assistant支持html文件,用户可以利用其定制自己的功能强大的帮助文档浏览器。关于Qt Assistant定制的资料主要是Qt Assistant自身所带的英文文档,虽然讲解比较详细,但是对于初学者来说难以快速的入手。因此结合具体实践,对Qt Assistant定制的过程进行整理,希望对他人能有所启发。
定制过程中用到qhp,qch,qhcp,qhc四种不同格式的文件。对于这四种文件,初学者可能会经常混淆。首先讲解一下这四种文件格式。这四种文件可以分为两组:
(1)qhp与qch。qhp是Qt Help Project的缩写,qch是Qt Compressed Help的缩写。qhp文件负责组织实际用到的帮助文件(通常为HTML文件,即需要在Qt Assistant中浏览的文件),然后通过qhelpgenerator命令生成压缩的qch文件。qch文件是Qt Assistant能够识别的文档最小单元,可以通过Qt Assistant->编辑->首选项->文档标签页->添加/移除操作来注册或者注销一个qch文件。也可以通过命令“assistant -register doc.qch”来注册qch文件。注册后,即可在Assistant界面中浏览帮助文档。
(2)qhcp和qhc。qhcp是Qt Help Collection Project的缩写,其主要作用是将qch二进制文件组织成为一个collection,定制客户化的Assistant;而qhc则是通过qcollectiongenerator命令生成的二进制文件,启动Assistant时需要指定collection参数,即qhc文件。qhc文件中是qch文件的集合,打开Assistant时,通过指定当前collection即可注册多个帮助文档。
从上面文件的解释看,我们需要手动完成两个文件即qhp和qhcp文件,通过这两个文件再生成最终需要的qch和qhc文件。qhp和qhcp文件都是XML文件,语法比较简单,这里不对语法进行详细介绍,具体可查看Qt Assistant帮助文档。下面结合我在项目中对Assistant定制的过程进行总结,并给出了用到的qhp和qhcp文件的内容,这样更有助于从整体上对该过程进行把握。
下面就是制作步骤:
(1)制作HTML的帮助文件。HTML文件就是把你需要阐述的内容用很多HTML文件表述出来。比如说我的如下图所示:image文件夹用来存放帮助文档需要使用的所有图片,其他html文件就是阐述的内容:
(1)qhp与qch。qhp是Qt Help Project的缩写,qch是Qt Compressed Help的缩写。qhp文件负责组织实际用到的帮助文件(通常为HTML文件,即需要在Qt Assistant中浏览的文件),然后通过qhelpgenerator命令生成压缩的qch文件。qch文件是Qt Assistant能够识别的文档最小单元,可以通过Qt Assistant->编辑->首选项->文档标签页->添加/移除操作来注册或者注销一个qch文件。也可以通过命令“assistant -register doc.qch”来注册qch文件。注册后,即可在Assistant界面中浏览帮助文档。
(2)qhcp和qhc。qhcp是Qt Help Collection Project的缩写,其主要作用是将qch二进制文件组织成为一个collection,定制客户化的Assistant;而qhc则是通过qcollectiongenerator命令生成的二进制文件,启动Assistant时需要指定collection参数,即qhc文件。qhc文件中是qch文件的集合,打开Assistant时,通过指定当前collection即可注册多个帮助文档。
从上面文件的解释看,我们需要手动完成两个文件即qhp和qhcp文件,通过这两个文件再生成最终需要的qch和qhc文件。qhp和qhcp文件都是XML文件,语法比较简单,这里不对语法进行详细介绍,具体可查看Qt Assistant帮助文档。下面结合我在项目中对Assistant定制的过程进行总结,并给出了用到的qhp和qhcp文件的内容,这样更有助于从整体上对该过程进行把握。
下面就是制作步骤:
(1)制作HTML的帮助文件。HTML文件就是把你需要阐述的内容用很多HTML文件表述出来。比如说我的如下图所示:image文件夹用来存放帮助文档需要使用的所有图片,其他html文件就是阐述的内容:
(2)编写qhp文件。下面是在项目中用到qhp文件,文件比较简单,这里仅用到了基本的功能,具体语法可以查看帮助文档。这里需要注意的是通过标签指定帮助文档目录,这里可以是多级目录,但是Qt中建议不超过四级。指定目录后,需要通过来指定所有用到的HTML文件,包括HTML文件中用到的所有图片。这里如果不指定,生成的qch文件注册到Qt Assistant后将不能找到有效的文件进行显示。我的qph文件如下所示:
(3)生成qch文件。qhp文件完成后,通过qhelpgenerator命令生成压缩的qch文件。打开cmd,输入" qhelpgenerator helpDoc.qhp -o helpDoc.qch "。这里helpDoc.qhp为输入的qhp文件,-o表示输出,输出文件名为helpDoc.qch。如果你的.qch文件在其它文件夹,在输入命令的时候需要加入.qch文件所在目录,同时HTML文件也必须在此目录下:比如所我的:
点击(此处)折叠或打开
- <?xml version="1.0" encoding="GB2312"?>
- <QtHelpProject version="1.0">
- <namespace>bookmisClient.helpDoc</namespace>
- <virtualFolder>doc</virtualFolder>
- <filterSection>
- <toc>
- <section title="首页" ref="./index.html">
- <section title="用户登录" ref="./userlogon.html"></section>
- <section title="书籍查询" ref="./bookquery.html"></section>
- <section title="续借书籍" ref="./Renewal.html"></section>
- <section title="系统管理" ref="./systemmanage.html"></section>
- <section title="日志管理" ref="./log.html"></section>
- <section title="关于" ref="./about.html"></section>
- </section>
- </toc>
- <files>
- <file>index.html</file>
- <file>userlogon.html</file>
- <file>bookquery.html</file>
- <file>Renewal.html</file>
- <file>systemmanage.html</file>
- <file>log.html</file>
- <file>about.html</file>
- <file>image/*.png</file>
- </files>
- </filterSection>
- </QtHelpProject>
(4)编写qhcp文件。qhcp中主要是对用到的qch文件进行组织,项目中用到的一个简单的qhcp文件如下:我的helpDoc.qhcp:
点击(此处)折叠或打开
- <?xml version="1.0" encoding="GB2312"?>
- <QHelpCollectionProject version="1.0">
- <assistant>
- <title>图书管理客户端帮助文档</title>
- <applicationIcon>image/lib.png</applicationIcon>
- <cacheDirectory>cache/helpDoc</cacheDirectory>
- <homePage>qthelp://bookmisClient.helpDoc/doc/index.html</homePage>
- <startPage>qthelp://bookmisClient.helpDoc/doc/index.html</startPage>
- <aboutMenuText>
- <text>关于</text>
- </aboutMenuText>
- <aboutDialog>
- <file>./about.txt</file>
- <icon>image/lib.png</icon>
- </aboutDialog>
- <enableDocumentationManager>false</enableDocumentationManager>
- <enableAddressBar>false</enableAddressBar>
- <enableFilterFunctionality>false</enableFilterFunctionality>
- </assistant>
- <docFiles>
- <generate>
- <file>
- <input>helpDoc.qhp</input>
- <output>helpDoc.qch</output>
- </file>
- </generate>
- <register>
- <file>helpDoc.qch</file>
- </register>
- </docFiles>
- </QHelpCollectionProject>
从以上可以看出,在qhcp文件中多了一个标签,并指定了输入qhp文件,和输出qch文件。文件里面可以指定多个qhp和qch,只要注意好文件直接的对应关系就可以了。
(5)生成qhc文件。通过qcollectiongenerator命令生成qhc文件,格式如下:“qcollectiongenerator helpDoc.qhcp -o helpDoc.qhc "。这里helpDoc.qhcp文件输入的qhcp文件,-o表示输出,helpDoc.qhc为生成的qhc文件名称。此编译也需要注意目录问题:我编译的截图:
(6)运行Qt Assistant。可以通过命令“assistant -collectionfile helpDoc.qhc”打开assistant,打开后即可浏览到我们自己的帮助文档了。当然如果是在程序中,可以通过QProcess来调用assistant.exe,并给出相应的collectionfile参数即可。命令运行:
(5)生成qhc文件。通过qcollectiongenerator命令生成qhc文件,格式如下:“qcollectiongenerator helpDoc.qhcp -o helpDoc.qhc "。这里helpDoc.qhcp文件输入的qhcp文件,-o表示输出,helpDoc.qhc为生成的qhc文件名称。此编译也需要注意目录问题:我编译的截图:
(6)运行Qt Assistant。可以通过命令“assistant -collectionfile helpDoc.qhc”打开assistant,打开后即可浏览到我们自己的帮助文档了。当然如果是在程序中,可以通过QProcess来调用assistant.exe,并给出相应的collectionfile参数即可。命令运行:
帮助文档:
最后在QT Creator里就可以调用此帮助文档,具体实现可参考下面的下载:
http://download.csdn.net/detail/rojian2010/5353368
http://download.csdn.net/detail/rojian2010/5353368
https://blog.csdn.net/u014213012/article/details/54318137