qt_add_ui
Añade archivos .ui a un objetivo.
El comando está definido en el componente Widgets del paquete Qt6. Carga el paquete con:
find_package(Qt6 REQUIRED COMPONENTS Widgets)
Sinopsis
qt_add_ui(<TARGET>
SOURCES file1.ui [file2.ui ...]
[INCLUDE_PREFIX <PREFIX>]
[OPTIONS ...])Si los comandos sin versión están desactivados, utilice qt6_add_ui() en su lugar. Admite el mismo conjunto de argumentos que este comando.
Este comando se introdujo en Qt 6.8.
Descripción
Crea reglas para llamar al User Interface Compiler (uic) en los archivos .ui. Para cada archivo de entrada, se genera un archivo de cabecera en el directorio de construcción. Los archivos de cabecera generados se añaden a los fuentes del objetivo.
Argumentos
TARGET
El argumento TARGET especifica el objetivo CMake al que se añadirán los archivos de cabecera generados.
FUENTES
El argumento SOURCES especifica la lista de archivos .ui a procesar.
PREFIJO_DE_INCLUSIÓN
INCLUDE_PREFIX especifica el prefijo de inclusión para los archivos de cabecera generados. Utilice el mismo prefijo de inclusión que en la directiva #include en los ficheros fuente. Si ui_<basename>.h se incluye sin prefijo, este argumento puede omitirse.
OPCIONES
Puede establecer OPTIONS adicionales que deben añadirse a las llamadas a uic. Puede encontrar las posibles opciones en la documentación de uic.
Ejemplos
Sin INCLUDE_PREFIX
En el siguiente fragmento, el archivo mainwindow.cpp incluye ui_mainwindow.h y mainwindow.h.
#include "mainwindow.h" #include "ui_mainwindow.h"
CMakeLists.txt se implementa de la siguiente manera y llama a qt_add_ui para añadir ui_mainwindow.h al objetivo myapp.
qt_add_executable(myapp mainwindow.cpp main.cpp) qt_add_ui(myapp SOURCES mainwindow.ui)
En el ejemplo anterior, ui_mainwindow.h se incluye sin prefijo. Así que el argumento INCLUDE_PREFIX no se especifica.
Con INCLUDE_PREFIX
#include "mainwindow.h" #include "src/files/ui_mainwindow.h"
En el fragmento anterior, mainwindow.cpp incluye ui_mainwindow.h con un prefijo.
qt_add_executable(myapp mainwindow.cpp main.cpp) qt_add_ui(myapp INCLUDE_PREFIX "src/files" SOURCES mainwindow.ui)
Dado que ui_mainwindow.h se incluye con un prefijo, el argumento INCLUDE_PREFIX se especifica como src/files en el ejemplo anterior.
Varios archivos .ui
En los siguientes fragmentos, tanto widget1.cpp como widget2.cpp incluyen ui_widget1.h y ui_widget2.h respectivamente.
widget1.cpp:
#include "src/files/ui_widget1.h"widget2.cpp:
#include "src/files/ui_widget2.h"Tanto ui_widget1.h como ui_widget2.h se incluyen con el mismo prefijo
qt_add_executable(myapp widget1.cpp widget2.cpp main.cpp) qt_add_ui(myapp INCLUDE_PREFIX "src/files" SOURCES widget1.ui widget2.ui)
En este caso, el argumento INCLUDE_PREFIX puede especificarse como src/files para ambos archivos en el fragmento anterior.
¿Cuándo preferir qt_add_ui a AUTOUIC?
qt_add_ui tiene algunas ventajas sobre AUTOUIC:
qt_add_uigarantiza que los archivos.uise generen correctamente durante la primera compilación, para los generadoresNinjayNinja Multi-Config.qt_add_uigarantiza que los archivos.hgenerados no se filtren fuera del directorio de compilación.- Dado que
qt_add_uino analiza los archivos fuente, proporciona una compilación más rápida queAUTOUIC.
¿Cuándo preferir qt_add_ui a qt_wrap_ui?
qt_add_ui tiene el argumento INCLUDE_PREFIX, que puede utilizarse para especificar el prefijo de inclusión de los archivos de cabecera generados.
Nota: No se recomienda utilizar tanto qt_add_ui como AUTOUIC para el mismo objetivo.
Véase también 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.