Qt (8)-2 QtAssistantで使うHELPファイルを作成する
公開日| 2009年06月26日 | コメントはまだありません。
カテゴリー:Qt |
概要 : Qtでは、WindowsでいうHTMLヘルプに変わるものとしてQtAssistantがあります。(先の記事でも記載しました。)
このQtAssistantでは、独自ファイル(SQLite3フォーマット)のqchファイルとqhcファイルが必要となります。 (WindowsのHTMLヘルプでのchmファイルに相当します。)
今回の記事では、そのQtAssistant用のHELPファイル(qchファイル,qhcファイル)の作成方法について記述します。
関連記事: Qt (8) QtAssistantのGUIの日本語化
関連記事: Qt (8)-3 Qtヘルプファイルを表示する
関連記事: http://doc.trolltech.com/4.5/qthelp.html
ここで使用したサンプルソースコード:
QtAssistant用のHELPファイルについて
QtAssistant用のHELPファイルは、以下の2つの種類のファイルがあります。| ファイル種別 | 解説 |
| .qchファイル |
Qt Compressed Helpファイル つまりは、HTMLで記述されたドキュメント(画像などの付属情報も含めて)をSQLite3のデータベースファイル1つにまとめたものです。 Commpressedというが、実際には、zlibなどのような圧縮はされていないように思われます。 (あくまで、個人的な感想ですが、結構、大きなサイズになります。) qhelpgenerator コマンドで作成します。 |
| .qhcファイル |
Qt Help Collectionファイル 単純には、.qchファイルを更に、SQLite3のデータベースファイル1つにまとめたものです。 HTMLドキュメントの実体は、あくまで、.qchファイルにあります。このファイルは、.qchファイルの管理を行うもので、検索などにも利用されているようです。 qcollectiongenerator コマンドで作成します。 |
更に、上記の2種のファイルを作成するための元ファイルがそれぞれ存在します。
| ファイル種別 | 解説 |
| .qhpファイル |
Qt Help Projectファイル HTMLで記述されたドキュメント(画像などの付属情報も含めて)を1つのプロジェクトとして管理するためのXMLベースのファイルです。 Commpressedというが、実際には、zlibなどのような圧縮はされていないように思われます。 (あくまで、個人的な感想ですが、結構、大きなサイズになります。) qhelpgenerator コマンドで.qchファイルへ変換します。 |
| .qhcpファイル |
Qt Help Project Collectionファイル 複数(一つでも可)の.qchファイルを、1つのコレクションとしての管理をするためのXMLベースのファイルです。 ここでは、QtAssistantの画面の一部パーツのカスタマイズなども指定できます。 qcollectiongenerator コマンドで.qhcファイルへ変換します。 |
整理しておくと、以下のようになります。
- HELPプロジェクトファイル(.qhp) -> .qch
- HELPプロジェクトコレクションファイル(.qhcp) -> .qhc
ちょっと、複雑な感じです。
ただ、ここでは、以下のように捕らえておけば、なんとなく理解できるかもしれません。
- プロジェクトをHTMLの管理
- コレクションを全体の管理
WindowでのHTMLヘルプでは、以下のような構成だったと思います。
この2つのファイルから、.chmファイル(HTMLヘルプファイル)を作成します。
iniファイルフォーマットとXMLフォーマットの違いや、書く場所は異なりますが、 基本的にHTMLヘルプファイル作成で必要な情報は、Qtヘルプでも必要と考えておけば良いと思います。
以降に、詳細な項目の説明がありますのでご参照ください。
- .hhcファイル(インデックス管理ファイル)
- .hhkファイル(概要管理ファイル)
- .hhpファイル(プロジェクト管理ファイル)
この2つのファイルから、.chmファイル(HTMLヘルプファイル)を作成します。
iniファイルフォーマットとXMLフォーマットの違いや、書く場所は異なりますが、 基本的にHTMLヘルプファイル作成で必要な情報は、Qtヘルプでも必要と考えておけば良いと思います。
以降に、詳細な項目の説明がありますのでご参照ください。
Qtヘルプの元となる、HELPプロジェクトファイル(.qhp)、HELPプロジェクトコレクションファイル(.qhcp)の構成を 以降に説明し、簡単な、Qtヘルプファイルを作成してみましょう。
HELPプロジェクトファイル(.qhp)について
HELPプロジェクトファイル(.qhp)は、XML形式で、一般的にUTF8で記述します。まずは、簡単なサンプルを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <?xml version="1.0" encoding="UTF-8"?> <QtHelpProject version="1.0"> <namespace>Sample_Help</namespace> <virtualFolder>doc</virtualFolder> <customFilter name="Sample Help 1.0"> <filterAttribute>Sample Help Application</filterAttribute> <filterAttribute>1.0</filterAttribute> </customFilter> <filterSection> <filterAttribute>Test Help Application</filterAttribute> <filterAttribute>1.0</filterAttribute> <toc> <section title="Sample Help" ref="index.html"> <section title="Chapter 1" ref="doc1.html"/> <section title="Chapter 2" ref="doc2.html"/> <section title="Chapter 3" ref="doc3.html"/> </section> </toc> <keywords> <keyword name="keyword1" id="TestHelp::key1" ref="doc1.html"/> <keyword name="keyword2" ref="doc2.html" /> <keyword id="TestHelp::key2" ref="doc3.html"/> </keywords> <files> <file>index.html</file> <file>doc1.html</file> <file>doc2.html</file> <file>doc3.html</file> <file>img1.png</file> <file>img2.png</file> <file>img3.png</file> </files> </filterSection> </QtHelpProject> |
ここでは、以下の4つのHTMLドキュメントが既にあるものとして記述しています。
- index.html
- doc1.html
- doc2.html
- doc3.html
1行目は、XML形式の宣言と文字コードの指定です。
2行目は、Qtヘルププロジェクトのバージョン指定です。 2009.6時点では、"1.0"が最新です。これを見ても、このQtヘルプが最近、導入されたことがわかります。
3行目以降の各タグについて、以下の表で簡単に解説します。
HELPプロジェクトファイル(.qhp)
| TAG名 | 解説 |
| Namespace | このプロジェクトの名前(このプロジェクトへアクセスするためのアドレスになります) |
| virtualFolder | 仮想ディレクトリ名(Namespaceに続くアドレスになります) |
| filterSection |
フィルター定義 デフォルトのフィルター定義です。 このフィルター定義には、以下の更に詳細なタグを設定できます。
|
| customFilter |
カスタムフィルター定義 filterSectionタグと同様の定義でき、フィルターバーで選択することで、 ここに定義したものだけを表示するようにもできます。 |
ここで、注意すべき点は、
HTMLドキュメントで使用している全てのファイルを定義しなければならないことです。
関連している画像ファイルや、CSSファイル、jsファイルなども全て指定しなければならないことに注意しなければなりません。
WindowのHTML ヘルプワークショップでは、HTMLファイルさえ指定すれば、自動で関連ファイルを取り込んでくれたのですが、 Qtヘルプの各コマンドでは、取り込みません。
さすがに、この部分は、閉口感があります。(早く、改善して欲しいものです。)
関連している画像ファイルや、CSSファイル、jsファイルなども全て指定しなければならないことに注意しなければなりません。
WindowのHTML ヘルプワークショップでは、HTMLファイルさえ指定すれば、自動で関連ファイルを取り込んでくれたのですが、 Qtヘルプの各コマンドでは、取り込みません。
さすがに、この部分は、閉口感があります。(早く、改善して欲しいものです。)
続けて、HELPプロジェクトコレクションファイル(.qhcp)について解説したいと思います。
ページ: 1 2

