qt_add_ui
ターゲットに .ui ファイルを追加します。
このコマンドはQt6
パッケージのWidgets
コンポーネントで定義されています。でパッケージを読み込む:
find_package(Qt6 REQUIRED COMPONENTS Widgets)
概要
qt_add_ui(<TARGET> SOURCES file1.ui [file2.ui ...] [INCLUDE_PREFIX <PREFIX>] [OPTIONS ...])
バージョンレスコマンドが無効になっている場合は、代わりにqt6_add_ui()
を使用してください。このコマンドと同じ引数セットをサポートしています。
このコマンドは Qt 6.8 で導入されました。
説明
User Interface Compiler (uic)を呼び出すためのルールを.ui
ファイルに作成します。各入力ファイルに対して、ビルドディレクトリにヘッダーファイルが生成されます。生成されたヘッダーファイルはターゲットのソースに追加されます。
引数
ターゲット
TARGET
引数は、生成されたヘッダー・ファイルが追加される CMake ターゲットを指定します。
SOURCES
SOURCES
引数は、処理する.ui
ファイルのリストを指定します。
INCLUDE_PREFIX
INCLUDE_PREFIX
は、生成されるヘッダーファイルのインクルード接頭辞を指定します。ソース・ファイルの ディレクティブと同じインクルード接頭辞を使用します。 が接頭辞なしでインクルードされる場合、この引数は省略できます。#include
ui_<basename>.h
オプション
uic
呼び出しに追加するOPTIONS
を設定できます。可能なオプションはuic のドキュメントを参照してください。
例
INCLUDE_PREFIXなし
以下のスニペットでは、mainwindow.cpp
ファイルがui_mainwindow.h
とmainwindow.h
をインクルードしています。
#include "mainwindow.h" #include "ui_mainwindow.h"
CMakeLists.txt
は以下のように実装され、 ターゲットに を追加するために を呼び出します。myapp
ui_mainwindow.h
qt_add_ui
qt_add_executable(myapp mainwindow.cpp main.cpp) qt_add_ui(myapp SOURCES mainwindow.ui)
上記の例では、ui_mainwindow.h
はプレフィックスなしでインクルードされています。そのため、INCLUDE_PREFIX
引数は指定されていません。
INCLUDE_PREFIXの場合
#include "mainwindow.h" #include "src/files/ui_mainwindow.h"
上記のスニペットでは、mainwindow.cpp
はui_mainwindow.h
を接頭辞付きで含めます。
qt_add_executable(myapp mainwindow.cpp main.cpp) qt_add_ui(myapp INCLUDE_PREFIX "src/files" SOURCES mainwindow.ui)
ui_mainwindow.h
は接頭辞付きでインクルードされるため、上記の例ではINCLUDE_PREFIX
引数はsrc/files
として指定されます。
複数の.uiファイル
以下のスニペットでは、widget1.cpp
とwidget2.cpp
の両方が、それぞれui_widget1.h
とui_widget2.h
をインクルードしています。
widget1.cpp
:
#include "src/files/ui_widget1.h"
widget2.cpp
:
#include "src/files/ui_widget2.h"
ui_widget1.h
とui_widget2.h
の両方が同じ接頭辞でインクルードされている。
qt_add_executable(myapp widget1.cpp widget2.cpp main.cpp) qt_add_ui(myapp INCLUDE_PREFIX "src/files" SOURCES widget1.ui widget2.ui)
この場合、上記のスニペットでは、INCLUDE_PREFIX
引数を両方のファイルに対してsrc/files
として指定することができます。
AUTOUIC
よりもqt_add_ui
を優先する場合とは?
qt_add_ui
には、AUTOUICよりも優れている点がいくつかある:
qt_add_ui
Ninja
と ジェネレーターの場合、最初のビルド時に ファイルが正しく生成されることを保証します。Ninja Multi-Config
.ui
qt_add_ui
生成された ファイルがビルド・ディレクトリの外部に漏れないことを保証します。.h
qt_add_ui
はソースファイルをスキャンしないので、AUTOUIC
よりも高速なビルドが可能です。
qt_wrap_ui
よりもqt_add_ui
を優先する場合 ?
qt_add_ui
には という引数があり、生成されるヘッダーファイルの インクルード接頭辞を指定するために使用できます。INCLUDE_PREFIX
注意: 同じターゲットに対してqt_add_ui
とAUTOUIC の両方を使用することは推奨されません。
qt_wrap_uiも参照してください 。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。