qt_add_ui
Ajoute des fichiers .ui à une cible.
Cette commande est définie dans le composant Widgets du paquetage Qt6. Chargez le paquetage avec :
find_package(Qt6 REQUIRED COMPONENTS Widgets)
Synopsis
qt_add_ui(<TARGET>
SOURCES file1.ui [file2.ui ...]
[INCLUDE_PREFIX <PREFIX>]
[OPTIONS ...])Si les commandes sans version sont désactivées, utilisez qt6_add_ui() à la place. Il prend en charge le même ensemble d'arguments que cette commande.
Cette commande a été introduite dans Qt 6.8.
Description
Crée des règles pour appeler User Interface Compiler (uic) sur les fichiers .ui. Pour chaque fichier d'entrée, un fichier d'en-tête est généré dans le répertoire de construction. Les fichiers d'en-tête générés sont ajoutés aux sources de la cible.
Arguments
CIBLE
L'argument TARGET spécifie la cible CMake à laquelle les fichiers d'en-tête générés seront ajoutés.
SOURCES
L'argument SOURCES spécifie la liste des fichiers .ui à traiter.
INCLUDE_PREFIX
INCLUDE_PREFIX spécifie le préfixe d'inclusion pour les fichiers d'en-tête générés. Utilisez le même préfixe d'inclusion que dans la directive #include dans les fichiers sources. Si ui_<basename>.h est inclus sans préfixe, cet argument peut être omis.
OPTIONS
Vous pouvez définir des options supplémentaires pour OPTIONS qui doivent être ajoutées aux appels à uic. Vous trouverez les options possibles dans la documentation uic.
Exemples
Sans INCLUDE_PREFIX
Dans l'extrait suivant, le fichier mainwindow.cpp inclut ui_mainwindow.h et mainwindow.h.
#include "mainwindow.h" #include "ui_mainwindow.h"
CMakeLists.txt Le fichier INCLUDE_PREFIX est implémenté comme suit et appelle qt_add_ui pour ajouter ui_mainwindow.h à la cible myapp.
qt_add_executable(myapp mainwindow.cpp main.cpp) qt_add_ui(myapp SOURCES mainwindow.ui)
Dans l'exemple ci-dessus, ui_mainwindow.h est inclus sans préfixe. L'argument INCLUDE_PREFIX n'est donc pas spécifié.
Avec INCLUDE_PREFIX
#include "mainwindow.h" #include "src/files/ui_mainwindow.h"
Dans l'extrait ci-dessus, mainwindow.cpp inclut ui_mainwindow.h avec un préfixe.
qt_add_executable(myapp mainwindow.cpp main.cpp) qt_add_ui(myapp INCLUDE_PREFIX "src/files" SOURCES mainwindow.ui)
Comme ui_mainwindow.h est inclus avec un préfixe, l'argument INCLUDE_PREFIX est spécifié comme src/files dans l'exemple ci-dessus.
Fichiers .ui multiples
Dans les extraits suivants, widget1.cpp et widget2.cpp incluent respectivement ui_widget1.h et ui_widget2.h.
widget1.cpp:
#include "src/files/ui_widget1.h"widget2.cpp:
#include "src/files/ui_widget2.h"ui_widget1.h et ui_widget2.h sont inclus avec le même préfixe
qt_add_executable(myapp widget1.cpp widget2.cpp main.cpp) qt_add_ui(myapp INCLUDE_PREFIX "src/files" SOURCES widget1.ui widget2.ui)
Dans ce cas, l'argument INCLUDE_PREFIX peut être spécifié comme src/files pour les deux fichiers de l'extrait ci-dessus.
Quand préférer qt_add_ui à AUTOUIC?
qt_add_ui présente certains avantages par rapport à AUTOUIC:
qt_add_uigarantit que les fichiers.uisont générés correctement lors de la première compilation, pour les générateursNinjaetNinja Multi-Config.qt_add_uigarantit que les fichiers.hgénérés ne sont pas divulgués en dehors du répertoire de construction.- Comme
qt_add_uin'analyse pas les fichiers sources, il permet une construction plus rapide queAUTOUIC.
Quand préférer qt_add_ui à qt_wrap_ui?
qt_add_ui possède l'argument INCLUDE_PREFIX, qui peut être utilisé pour spécifier le préfixe d'inclusion des fichiers d'en-tête générés.
Note : Il n'est pas recommandé d'utiliser à la fois qt_add_ui et AUTOUIC pour la même cible.
Voir aussi 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.