【目的】
- Help 文件的實現。
【資料】
在 Qt Quarterly 的 Issue 28 提供如何實現 Qt 使用者幫助文件(Help System)的範例。
此範例程也提供了一個框架,幫助我們直接套換成我們所需要的功能。
先看一下執行結果會比較有概念
【步驟】
說明文件的實現方式,主要是先透過 HTML 格式來編輯所有的說明文件,
並利用 Qt 所提供的工具來將所有的說明文件壓縮文件成單一個檔案,方便散播。
- 輸入檔案 ( 在 simpletextviewer\documentation 底下 )
- images 目錄下的圖形檔
- about.txt
- HTML files,這就是說明文件的原始雛形。
- browse.html
- filedialog.html
- findfile.html
- index.html
- intro.html
- openfile.html
- wildcardmatching.html
- 指引檔
- simpletextviewer.qhp (Qt help project)
- simpletextviewer.qhcp (Qt help collection project file)
- 預計輸出檔案
- simpletextviewer.qch (Qt compressed help file)
- simpletextviewer.qhc ( Qt binary collection file)
- 指令
qph 與 qhcp 都是 xml 格式文件,內容說明請直接參考該範例。
為了避免環境變數的問題,建議使用 Qt Command Prompt 進行以下動作
- 由 qph(Qt help project) 產生 qch(Qt compressed help file) 並註冊
qhelpgenerator simpletextviewer.qhp -o simpletextviewer.qch assistant -register simpletextviewer.qch
- 由 qhcp (Qt help collection project file) 產生 qhc (Qt binary collection file)
qcollectiongenerator simpletextviewer.qhcp -o simpletextviewer.qhc
- 透過 assistant 先行驗證
assistant -collectionFile simpletextviewer.qhc
- 由 qph(Qt help project) 產生 qch(Qt compressed help file) 並註冊
- 和程式整合 ( TBD,個人感覺 Q t官方所提供的這種方式有點煩鎖,基本上我所想要的Help文件只需要有一個HTML頁面來介紹程式所有功能與其他多語系頁面即可,所以目前只是先將官方作法留個記錄)
)
【注意】
- simpletextviewer.qhcp 裡面的內容有幾個重點
<?xml version="1.0" encoding="UTF-8"?> <QHelpCollectionProject version="1.0"> <assistant> <title>Simple Text Viewer</title> <applicationIcon>images/handbook.png</applicationIcon> <cacheDirectory>Trolltech/SimpleTextViewer</cacheDirectory> <startPage>qthelp://com.trolltech.examples.simpletextviewer/doc/index.html</startPage> <aboutMenuText> <text>About Simple Text Viewer</text> </aboutMenuText> <aboutDialog> <file>about.txt</file> <icon>images/icon.png</icon> </aboutDialog> ... </assistant> <docFiles> <generate> <file> <input>simpletextviewer.qhp</input> <output>simpletextviewer.qch</output> </file> </generate> <register> <file>simpletextviewer.qch</file> </register> </docFiles> </QHelpCollectionProject>
- cacheDirectory, Trolltech/SimpleTextViewer
如果發現更改完 HTML 檔案重新生程說明文件,但發現沒有更新,可以關注一下這邊。 - file, about.txt
- icon, icon.png
【想法】
- 由於直接以HTML檔案來當說明文件,這種方式容易做到直接和網路上的說明文件同步。
- 但是上面官方本身所提供的方法有些繁鎖(還需編寫 XML 格式的設定檔),我覺得在產品初期也可以直接用 Qt 內建的 QWebView 直接載入 以 HTML 寫好的文件即可。
- 上面所提到類似的作法直接參考 Using QTextBrowser as a Simple Help Engine
(C++ GUI Programming with Qt 4, Second Edition p.353)
【參考】
- Help System Examples(C:\Qt\2010.03\qt\examples\help\simpletextviewer)
Simple Text Viewer http://doc.qt.nokia.com/4.6/examples-helpsystem.html - Qt Quarterly http://doc.trolltech.com/qq/index.html
Issue 28 · Q4 2008 Using QtHelp to Lend a Helping Hand
http://doc.trolltech.com/qq/qq28-qthelp.html