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.hmainwindow.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.cppui_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.cppwidget2.cpp の両方が、それぞれui_widget1.hui_widget2.h をインクルードしています。

widget1.cpp:

#include "src/files/ui_widget1.h"

widget2.cpp:

#include "src/files/ui_widget2.h"

ui_widget1.hui_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_uiAUTOUIC の両方を使用することは推奨されません。

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.