Qt Assistant是Qt自帶的一款可定制、可重新發(fā)行的幫助文件瀏覽器。Qt Assistant支持HTML文件,用戶可以利用其定制自己的功能強(qiáng)大的幫助文檔瀏覽器。關(guān)于Qt Assistant定制的資料主要是Qt Assistant自身所帶的英文文檔,雖然講解比較詳細(xì),但是對(duì)于初學(xué)者來說難以快速的入手。因此結(jié)合具體實(shí)踐,對(duì)Qt Assistant定制的過程進(jìn)行整理,希望對(duì)他人能有所啟發(fā)。
定制過程中用到qhp,qch,qhcp,qhc四種不同格式的文件。對(duì)于這四種文件,初學(xué)者可能會(huì)經(jīng);煜V辽傥以陂_始用的時(shí)候,一頭霧水。首先講解一下這四種文件格式。這四種文件可以分為兩組:
(1)qhp與qch。qhp是Qt Help Project的縮寫,qch是Qt Compressed Help的縮寫。qhp文件負(fù)責(zé)組織實(shí)際用到的幫助文件(通常為HTML文件,即需要在Qt Assistant中瀏覽的文件),然后通過qhelpgenerator命令生成壓縮的qch文件。qch文件是Qt Assistant能夠識(shí)別的文檔最小單元,可以通過Qt Assistant->編輯->首選項(xiàng)->文檔標(biāo)簽頁->添加/移除操作來注冊(cè)或者注銷一個(gè)qch文件。也可以通過命令“assistant -register doc.qch”來注冊(cè)qch文件。注冊(cè)后,即可在Assistant界面中瀏覽幫助文檔。
(2)qhcp和qhc。qhcp是Qt Help Collection Project的縮寫,其主要作用是將qch二進(jìn)制文件組織成為一個(gè)collection,定制客戶化的Assistant;而qhc則是通過qcollectiongenerator命令生成的二進(jìn)制文件,啟動(dòng)Assistant時(shí)需要指定collection參數(shù),即qhc文件。qhc文件中是qch文件的集合,打開Assistant時(shí),通過指定當(dāng)前collection即可注冊(cè)多個(gè)幫助文檔。
從上面文件的解釋看,我們需要手動(dòng)完成兩個(gè)文件即qhp和qhcp文件,通過這兩個(gè)文件再生成最終需要的qch和qhc文件。qhp和qhcp文件都是XML文件,語法比較簡(jiǎn)單,這里不對(duì)語法進(jìn)行詳細(xì)介紹,具體可查看Qt Assistant幫助文檔。下面結(jié)合我在項(xiàng)目中對(duì)Assistant定制的過程進(jìn)行總結(jié),并給出了用到的qhp和qhcp文件的內(nèi)容,這樣更有助于從整體上對(duì)該過程進(jìn)行把握。
(1)制作HTML的幫助文件。由于原來的幫助文檔是利用Word完成的,因此需要轉(zhuǎn)換。轉(zhuǎn)換的過程十分簡(jiǎn)單,即便對(duì)HTML不了解的用戶也可以輕松完成。目前網(wǎng)絡(luò)上有許多現(xiàn)成的HTML編輯器,利用這些編輯器即可輕松的進(jìn)行編輯生成相應(yīng)的html文件。
(2)編寫qhp文件。下面是在項(xiàng)目中用到qhp文件,文件比較簡(jiǎn)單,這里僅用到了基本的功能,具體語法可以查看幫助文檔。這里需要注意的是通過<section>標(biāo)簽指定幫助文檔目錄,這里可以是多級(jí)目錄,但是Qt中建議不超過四級(jí)。指定目錄后,需要通過<file>來指定所有用到的HTML文件,包括HTML文件中用到的所有圖片。這里如果不指定,生成的qch文件注冊(cè)到Qt Assistant后將不能找到有效的文件進(jìn)行顯示。
<?xml version="1.0" encoding="UTF-8"?>
<QtHelpProject version="1.0">
<namespace>org.mitk</namespace>
<virtualFolder>doc</virtualFolder>
<filterSection>
<toc>
<section title="fMRIAnalyze Tutorial" ref="tutorial.htm">
</section>
</toc>
<files>
<file>tutorial.htm</file>
<file>Tutorial_files/clip_image002.jpg</file>
.....................................................................
<file>Tutorial_files/clip_image072.jpg</file>
</files>
</filterSection>
</QtHelpProject>
(3)生成qch文件。qhp文件完成后,通過qhelpgenerator命令生成壓縮的qch文件。打開cmd,輸入" qhelpgenerator doc.qhp -o doc.qch "。這里doc.qhp為輸入的qhp文件,-o表示輸出,輸出文件名為doc.qch。
(4)編寫qhcp文件。qhcp中主要是對(duì)用到的qch文件進(jìn)行組織,項(xiàng)目中用到的一個(gè)簡(jiǎn)單的qhcp文件如下:
<?xml version="1.0" encoding="utf-8" ?>
<QHelpCollectionProject version="1.0">
<docFiles>
<register>
<file>doc.qch</file>
<file>其他的qch文件</file>
</register>
</docFiles>
</QHelpCollectionProject>
從文件中可以看出,只需要在register標(biāo)簽中指定相應(yīng)的qch文件名稱即可。當(dāng)前這里必須確保在qhcp文件目錄下存在指定的qch文件。為了避免因?yàn)橥浬蓂ch文件而造成錯(cuò)誤,qhcp中支持通過指定qhp文件從一次生成相應(yīng)的qch和qhc文件。格式如下:
<?xml version="1.0" encoding="utf-8" ?>
<QHelpCollectionProject version="1.0">
<docFiles>
<generate>
<file>
<input>doc.qhp</input>
<output>doc.qch</output>
</file>
</generate>
<register>
<file>doc.qch</file>
</register>
</docFiles>
</QHelpCollectionProject>
從以上可以看出,在qhcp文件中多了一個(gè)<generate>標(biāo)簽,并指定了輸入qhp文件,和輸出qch文件。文件里面可以指定多個(gè)qhp和qch,只要注意好文件直接的對(duì)應(yīng)關(guān)系就可以了。
(5)生成qhc文件。通過qcollectiongenerator命令生成qhc文件,格式如下:“qcollectiongenerator doc.qhcp -o doc.qhc "。這里doc.qhcp文件輸入的qhcp文件,-o表示輸出,doc.qhc為生成的qhc文件名稱。
在編寫qhcp文件時(shí),建議采用(4)中的第二種方式,這樣只需要一個(gè)命令即可生成qch和qhc文件,也避免了因?yàn)檫z漏qch文件而造成qhc文件錯(cuò)誤。
(6)運(yùn)行Qt Assistant。可以通過命令“qassistant -collectionfile doc.qhc”打開qassistant,打開后即可瀏覽到我們自己的幫助文檔了。當(dāng)然如果是在程序中,可以通過QProcess來調(diào)用assistant.exe,并給出相應(yīng)的collectionfile參數(shù)即可。
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版