qt_add_ui
Fügt .ui-Dateien zu einem Ziel hinzu.
Der Befehl ist in der Widgets
Komponente des Qt6
Pakets definiert. Laden Sie das Paket mit:
find_package(Qt6 REQUIRED COMPONENTS Widgets)
Synopsis
qt_add_ui(<TARGET> SOURCES file1.ui [file2.ui ...] [INCLUDE_PREFIX <PREFIX>] [OPTIONS ...])
Wenn versionslose Befehle deaktiviert sind, verwenden Sie stattdessen qt6_add_ui()
. Es unterstützt den gleichen Satz an Argumenten wie dieser Befehl.
Dieser Befehl wurde in Qt 6.8 eingeführt.
Beschreibung
Erzeugt Regeln für den Aufruf von User Interface Compiler (uic) auf den .ui
Dateien. Für jede Eingabedatei wird eine Header-Datei im Build-Verzeichnis erzeugt. Die erzeugten Headerdateien werden zu den Quellen des Ziels hinzugefügt.
Argumente
TARGET
Das Argument TARGET
gibt das CMake-Target an, zu dem die generierten Header-Dateien hinzugefügt werden sollen.
SOURCES
Das Argument SOURCES
spezifiziert die Liste der zu verarbeitenden .ui
Dateien.
INCLUDE_PREFIX
INCLUDE_PREFIX
gibt das Include-Präfix für die erzeugten Header-Dateien an. Verwenden Sie denselben Include-Präfix wie in der Direktive #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
setzen, die zu den Aufrufen von uic
hinzugefügt werden sollen. Mögliche Optionen finden Sie in der uic-Dokumentation.
Beispiele
Ohne INCLUDE_PREFIX
Im folgenden Schnipsel schließt die Datei mainwindow.cpp
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 ein Präfix eingebunden. Das Argument INCLUDE_PREFIX
wird also nicht angegeben.
Mit INCLUDE_PREFIX
#include "mainwindow.h" #include "src/files/ui_mainwindow.h"
Im obigen Ausschnitt schließt 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 eingeschlossen ist, wird das Argument INCLUDE_PREFIX
im obigen Beispiel als src/files
angegeben.
Mehrere .ui-Dateien
In den folgenden Ausschnitten schließen sowohl widget1.cpp
als auch widget2.cpp
ui_widget1.h
bzw. ui_widget2.h
ein.
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
sind mit demselben Präfix enthalten
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
als src/files
für beide Dateien im obigen Ausschnitt angegeben werden.
Wann sollte man qt_add_ui
gegenüber AUTOUIC
vorziehen?
qt_add_ui
hat einige Vorteile gegenüber AUTOUIC:
qt_add_ui
stellt sicher, dass die.ui
Dateien während des ersten Builds für die GeneratorenNinja
undNinja Multi-Config
korrekt erzeugt werden.qt_add_ui
garantiert, dass die erzeugten.h
Dateien nicht außerhalb des Build-Verzeichnisses durchsickern.- Da
qt_add_ui
die Quelldateien nicht scannt, bietet es einen schnelleren Build alsAUTOUIC
.
Wann sollte man qt_add_ui
gegenüber qt_wrap_ui
bevorzugen?
qt_add_ui
hat das Argument INCLUDE_PREFIX
, das verwendet werden kann, um das Include-Präfix für die generierten Header-Dateien anzugeben.
Hinweis: Es wird nicht empfohlen, sowohl qt_add_ui
als auch AUTOUIC für dasselbe Ziel zu verwenden.
Siehe auch 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.