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
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 は次のように実装されており、qt_add_ui を呼び出して、myapp ターゲットにui_mainwindow.h を追加します。
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 として指定できます。
どのような場合にqt_add_ui をAUTOUIC よりも優先すべきか?
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()も参照してください 。
© 2026 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.