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.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も参照してください

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。