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 で導入されました。
説明
.ui
ファイルに対してUser Interface Compiler (uic)を呼び出すためのルールを作成します。各入力ファイルに対して、ビルドディレクトリにヘッダーファイルが生成されます。生成されたヘッダーファイルはターゲットのソースに追加されます。
引数
ターゲット
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も参照してください 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.