Chinaunix首页 | 论坛 | 博客
  • 博客访问: 570006
  • 博文数量: 63
  • 博客积分: 533
  • 博客等级: 中士
  • 技术积分: 1146
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-24 17:56
文章分类

全部博文(63)

文章存档

2016年(1)

2014年(23)

2013年(17)

2012年(22)

分类: Windows平台

2013-05-10 16:34:24

        Qt Assistant是Qt自带的一款可定制、可重新发行的帮助文件浏览器。Qt Assistant支持HTML文件,用户可以利用其定制自己的功能强大的帮助文档浏览器。关于Qt Assistant定制的资料主要是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文件就是阐述的内容:

   (2)编写qhp文件。下面是在项目中用到qhp文件,文件比较简单,这里仅用到了基本的功能,具体语法可以查看帮助文档。这里需要注意的是通过
标签指定帮助文档目录,这里可以是多级目录,但是Qt中建议不超过四级。指定目录后,需要通过来指定所有用到的HTML文件,包括HTML文件中用到的所有图片。这里如果不指定,生成的qch文件注册到Qt Assistant后将不能找到有效的文件进行显示。我的qph文件如下所示:

点击(此处)折叠或打开

  1. <?xml version="1.0" encoding="GB2312"?>
  2. <QtHelpProject version="1.0">
  3.   <namespace>bookmisClient.helpDoc</namespace>
  4.   <virtualFolder>doc</virtualFolder>
  5.   <filterSection>
  6.     <toc>
  7.       <section title="首页" ref="./index.html">
  8.         <section title="用户登录" ref="./userlogon.html"></section>
  9.           <section title="书籍查询" ref="./bookquery.html"></section>
  10.           <section title="续借书籍" ref="./Renewal.html"></section>
  11.      <section title="系统管理" ref="./systemmanage.html"></section>
  12.      <section title="日志管理" ref="./log.html"></section>
  13.      <section title="关于" ref="./about.html"></section>
  14.         </section>
  15.     </toc>
  16.     <files>
  17.       <file>index.html</file>
  18.       <file>userlogon.html</file>
  19.       <file>bookquery.html</file>
  20.       <file>Renewal.html</file>
  21.       <file>systemmanage.html</file>
  22.       <file>log.html</file>
  23.       <file>about.html</file>
  24.       <file>image/*.png</file>
  25.     </files>
  26.   </filterSection>
  27. </QtHelpProject>
       (3)生成qch文件。qhp文件完成后,通过qhelpgenerator命令生成压缩的qch文件。打开cmd,输入" qhelpgenerator   helpDoc.qhp  -o helpDoc.qch "。这里helpDoc.qhp为输入的qhp文件,-o表示输出,输出文件名为helpDoc.qch。如果你的.qch文件在其它文件夹,在输入命令的时候需要加入.qch文件所在目录,同时HTML文件也必须在此目录下:比如所我的:

      (4)编写qhcp文件。qhcp中主要是对用到的qch文件进行组织,项目中用到的一个简单的qhcp文件如下:我的helpDoc.qhcp:

点击(此处)折叠或打开

  1. <?xml version="1.0" encoding="GB2312"?>
  2. <QHelpCollectionProject version="1.0">
  3. <assistant>
  4.   <title>图书管理客户端帮助文档</title>
  5.   <applicationIcon>image/lib.png</applicationIcon>
  6.   <cacheDirectory>cache/helpDoc</cacheDirectory>
  7.   <homePage>qthelp://bookmisClient.helpDoc/doc/index.html</homePage>
  8.   <startPage>qthelp://bookmisClient.helpDoc/doc/index.html</startPage>
  9.   <aboutMenuText>
  10.     <text>关于</text>
  11.   </aboutMenuText>
  12.   <aboutDialog>
  13.     <file>./about.txt</file>
  14.     <icon>image/lib.png</icon>
  15.   </aboutDialog>
  16.   <enableDocumentationManager>false</enableDocumentationManager>
  17.   <enableAddressBar>false</enableAddressBar>
  18.   <enableFilterFunctionality>false</enableFilterFunctionality>
  19. </assistant>
  20. <docFiles>
  21.   <generate>
  22.     <file>
  23.       <input>helpDoc.qhp</input>
  24.       <output>helpDoc.qch</output>
  25.     </file>
  26.   </generate>
  27.   <register>
  28.     <file>helpDoc.qch</file>
  29.   </register>
  30. </docFiles>
  31. </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参数即可。命令运行:

帮助文档:

最后在QT Creator里就可以调用此帮助文档,具体实现可参考下面的下载:


阅读(13681) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~