概要
qt.confファイルは、Qtライブラリにコンパイルされるハードコードされたパスを上書きするためのファイルである。
これらのパスには、QLibraryInfoクラスを使用してアクセスできる。
qt.confファイルを作成する場合、QLibraryInfoクラスのメソッドは、qt.confファイルで指定されているパスを返す。
qt.confファイルを作成しない場合、QLibraryInfoクラスのメソッドは、ハードコードされたパスを返す。
qt.confファイルが無い場合、Qtライブラリはハードコードされたパスを使用して、プラグインや翻訳等を検索する。
検索した結果、ターゲットシステムに存在しない、または、アクセスできない可能性があるため、
Qtライブラリを他の場所に表示するにはqt.confファイルが必要になる。
QLibraryInfoクラスは、以下のいずれかの場所から、qt.confファイルを読み込む。
- /qt/etc/qt.conf
- 実行ファイルが存在するディレクトリ
QCoreApplication::applicationDirPath()+QDir::Separator()+ "qt.conf"
- MacOSの場合、アプリケーションバンドル内のResourceディレクトリ
- (assistant.app/Contents/Resources/qt.confなど)
qt.confファイルは、QSettingsのドキュメントに記載されているように、INIファイルである。
ファイルには、QLibraryInfo::LibraryLocation列挙型の各値に対応するエントリを含むPathsグループが必要である。
QLibraryInfoクラスの詳細は、Qtの公式Webサイトにあるドキュメントを参照すること。
| エントリー名 | 初期値 |
|---|---|
| Prefix | QCoreApplication::applicationDirPath() |
| Documentation | doc |
| Headers | include |
| Libraries | lib |
| Binaries | bin |
| Plugins | plugins |
| Imports | imports |
| Data | . |
| Translations | translations |
| Settings | . |
| Examples | . |
| Demos | . |
絶対パスは、qt.confファイルで指定した通りに使用される。
- WindowsおよびLinuxでは、プレフィックスは、実行ファイル(
QCoreApplication::applicationDirPath())があるディレクトリを基準としている。 - MacOSでは、プレフィックスは、アプリケーションバンドルのコンテンツに関連している。
- 例えば、application.app/Contents/pluginsディレクトリは、Qtプラグインを読み込むための標準の場所である。
- プラグインは、pluginsディレクトリ下の特定のサブディレクトリに配置する必要があることに注意すること。
- (詳細については、Qtプラグインを作成する方法を参照すること)
[Paths] Prefix = /some/path Translations = i18n
例えば、qt.confファイルに以下の設定を記述している場合、
Pathsグループのサブグループは、Qtライブラリの特定のバージョンの場所を指定するために使用する。
このようなサブグループは、Paths/X.Y.Zという形式で、XはQtライブラリのメジャーバージョン、Yはマイナーバージョン、Zはパッチレベルである。
Paths Paths/4 Paths/4.1 Paths/4.2.5 Paths/6
上記の設定の記述する場合、現在のQtのバージョンに最も近いサブグループが使用される。
サブグループが一致しない場合は、Pathsグループがフォールバックとして使用される。
マイナーバージョンとパッチレベルの値は省略することができるが、その場合は0になる。