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的帮助文件。由于原来的帮助文档是利用Word完成的,因此需要转换。转换的过程十分简单,即便对HTML不了解的用户也可以轻松完成。目前网络上有许多现成的HTML编辑器,利用这些编辑器即可轻松的进行编辑生成相应的html文件。
(2)编写qhp文件。下
面是在项目中用到qhp文件,文件比较简单,这里仅用到了基本的功能,具体语法可以查看帮助文档。这里需要注意的是通过标
签指定帮助文档目录,这里可以是多级目录,但是Qt中建议不超过四级。指定目录后,需要通过来指定所有用到的HTML文件,包括
HTML文件中用到的所有图片。这里如果不指定,生成的qch文件注册到Qt Assistant后将不能找到有效的文件进行显示。
org.mitk
doc
tutorial.htm
Tutorial_files/clip_image002.jpg
.....................................................................
Tutorial_files/clip_image072.jpg
(3)生成qch文件。qhp文件完成后,通过qhelpgenerator命令生成压缩的qch文件。打开cmd,输入" qhelpgenerator doc.qhp -o doc.qch "。这里doc.qhp为输入的qhp文件,-o表示输出,输出文件名为doc.qch。
(4)编写qhcp文件。qhcp中主要是对用到的qch文件进行组织,项目中用到的一个简单的qhcp文件如下:
doc.qch
其他的qch文件
从文件中可以看出,只需要在register标签中指定相应的qch文件名称即可。当前这里必须确保在qhcp文件目录下存在指定的qch文件。为了避免因为忘记生成qch文件而造成错误,qhcp中支持通过指定qhp文件从一次生成相应的qch和qhc文件。格式如下:
doc.qhp
doc.qch
doc.qch
从以上可以看出,在qhcp文件中多了一个标签,并指定了输入qhp文件,和输出qch文件。文件里面可以指定多个qhp和qch,只要注意好文件直接的对应关系就可以了。
(5)生成qhc文件。通
过qcollectiongenerator命令生成qhc文件,格式如下:“qcollectiongenerator doc.qhcp
-o doc.qhc "。这里doc.qhcp文件输入的qhcp文件,-o表示输出,doc.qhc为生成的qhc文件名称。
在编写qhcp文件时,建议采用(4)中的第二种方式,这样只需要一个命令即可生成qch和qhc文件,也避免了因为遗漏qch文件而造成qhc文件错误。
(6)运行Qt Assistant。可
以通过命令“qassistant -collectionfile
doc.qhc”打开qassistant,打开后即可浏览到我们自己的帮助文档了。当然如果是在程序中,可以通过QProcess来调用
assistant.exe,并给出相应的collectionfile参数即可。具体可参考: