qt_add_ui
Fügt einem Ziel .ui-Dateien hinzu.
Der Befehl ist in der Komponente „ Widgets “ des Pakets „ Qt6 “ definiert. Laden Sie das Paket mit:
find_package(Qt6 REQUIRED COMPONENTS Widgets)Syntax
qt_add_ui(<TARGET>
SOURCES file1.ui [file2.ui ...]
[INCLUDE_PREFIX <PREFIX>]
[OPTIONS ...])Wenn versionsunabhängige Befehle deaktiviert sind, verwenden Sie stattdessen „ qt6_add_ui() “. Dieser Befehl unterstützt dieselben Argumente wie der vorliegende Befehl.
Dieser Befehl wurde in Qt 6.8 eingeführt.
Beschreibung
Erstellt Regeln für den Aufruf des „User Interface Compiler “ (uic) für die Dateien im Verzeichnis „ .ui “. Für jede Eingabedatei wird im Build-Verzeichnis eine Header-Datei generiert. Die generierten Header-Dateien werden den Quelldateien des Ziels hinzugefügt.
Argumente
TARGET
Das Argument „ TARGET “ gibt das CMake-Ziel an, zu dem die generierten Header-Dateien hinzugefügt werden.
SOURCES
Das Argument „ SOURCES “ gibt die Liste der zu verarbeitenden „ .ui “-Dateien an.
INCLUDE_PREFIX
INCLUDE_PREFIX Legt das Include-Präfix für die generierten Header-Dateien fest. Verwenden Sie dasselbe Include-Präfix wie in der Anweisung ` #include ` in den Quelldateien. Wenn ` ui_<basename>.h ` ohne Präfix eingebunden wird, kann dieses Argument weggelassen werden.
OPTIONEN
Sie können zusätzliche ` OPTIONS ` festlegen, die den ` uic `-Aufrufen hinzugefügt werden sollen. Mögliche Optionen finden Sie in der uic-Dokumentation.
Beispiele
Ohne INCLUDE_PREFIX
Im folgenden Ausschnitt bindet die Datei „ mainwindow.cpp “ die Dateien „ ui_mainwindow.h “ und „ mainwindow.h “ ein.
#include "mainwindow.h"
#include "ui_mainwindow.h"CMakeLists.txt ist wie folgt implementiert und ruft „ qt_add_ui “ auf, um „ ui_mainwindow.h “ zum Ziel „ myapp “ hinzuzufügen.
qt_add_executable(myapp mainwindow.cpp main.cpp)
qt_add_ui(myapp SOURCES mainwindow.ui)Im obigen Beispiel wird „ ui_mainwindow.h “ ohne Präfix eingebunden. Daher wird das Argument „ INCLUDE_PREFIX “ nicht angegeben.
Mit INCLUDE_PREFIX
#include "mainwindow.h"
#include "src/files/ui_mainwindow.h"Im obigen Ausschnitt bindet mainwindow.cpp „ ui_mainwindow.h “ mit einem Präfix ein.
qt_add_executable(myapp mainwindow.cpp main.cpp)
qt_add_ui(myapp INCLUDE_PREFIX "src/files" SOURCES mainwindow.ui)Da „ ui_mainwindow.h “ mit einem Präfix eingebunden wird, wird das Argument „ INCLUDE_PREFIX “ im obigen Beispiel als „ src/files “ angegeben.
Mehrere .ui-Dateien
In den folgenden Codeausschnitten werden sowohl widget1.cpp als auch widget2.cpp jeweils mit ui_widget1.h bzw. ui_widget2.h eingebunden.
widget1.cpp:
#include "src/files/ui_widget1.h"widget2.cpp:
#include "src/files/ui_widget2.h"Sowohl „ ui_widget1.h “ als auch „ ui_widget2.h “ werden mit demselben Präfix eingebunden
qt_add_executable(myapp widget1.cpp widget2.cpp main.cpp)
qt_add_ui(myapp INCLUDE_PREFIX "src/files" SOURCES widget1.ui widget2.ui)In diesem Fall kann das Argument „ INCLUDE_PREFIX “ für beide Dateien im obigen Ausschnitt als „ src/files “ angegeben werden.
Wann sollte „ qt_add_ui “ gegenüber „ AUTOUIC “ bevorzugt werden?
qt_add_ui bietet gegenüber AUTOUIC einige Vorteile:
qt_add_uiStellt sicher, dass die „.ui“-Dateien beim ersten Build korrekt generiert werden, und zwar sowohl für die „Ninja“- als auch für die „Ninja Multi-Config“-Generatoren.qt_add_uiEs wird gewährleistet, dass die generierten „.h“-Dateien nicht außerhalb des Build-Verzeichnisses gelangen.- Da „
qt_add_ui“ die Quelldateien nicht scannt, ermöglicht es einen schnelleren Build als „AUTOUIC“.
Wann sollte man „ qt_add_ui “ gegenüber „ qt_wrap_ui “ bevorzugen?
qt_add_ui verfügt über das Argument „ INCLUDE_PREFIX “, mit dem das Include-Präfix für die generierten Header-Dateien festgelegt werden kann.
Hinweis: Es wird nicht empfohlen, sowohl qt_add_ui als auch AUTOUIC für dasselbe Ziel zu verwenden.
Siehe auch 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.