¿Qué es el formato de archivo UI?
Un archivo .ui es una descripción de diseño de formulario basada en XML creada y editada por Qt Designer, el editor visual de GUI incluido en Qt Creator. Define la jerarquía de widgets, propiedades, conexiones de señales/ranuras (signals/slots) y referencias de recursos que componen un diálogo o ventana de Qt Widgets; sin embargo, es un artefacto exclusivo del tiempo de diseño y nunca se despliega en tiempo de ejecución.
El archivo comienza con una declaración XML estándar seguida de un elemento raíz <ui version="4.0">. En su interior, un árbol de <widget> refleja la jerarquía de widgets, donde cada nodo lleva elementos <property> para geometría, texto, fuentes y otros atributos. Las conexiones de señales/ranuras se enumeran en un bloque <connections>; los registros de widgets personalizados aparecen bajo <customwidgets>; los alias de recursos incrustados se encuentran en <resources>.
En el momento de la compilación, el uic (User Interface Compiler) de Qt lee el archivo .ui y genera una cabecera C++ -por ejemplo, ui_mainwindow.h- que instancia y configura todos los widgets. Esta cabecera generada es incluida mediante #include por el archivo de implementación .cpp correspondiente. El esquema XML ha sido estable desde Qt 4 (2005) y es totalmente compatible con Qt 5 y Qt 6; las tres versiones conservan la cadena de atributo version="4.0" por compatibilidad con versiones anteriores.
Para las interfaces modernas de Qt Quick basadas en .qml, no se utilizan archivos .ui. Siguen siendo el estándar para las aplicaciones tradicionales de Qt Widgets en Windows, Linux, macOS, Android, iOS y sistemas embebidos. Qt Designer (también disponible como herramienta independiente) y cualquier editor de XML de texto plano pueden abrir archivos .ui.
Seguridad y protección
RIESGO: LOWLos archivos .ui son XML puro y no presentan riesgo de ejecución al abrirse en un editor de texto. En un entorno de desarrollo, el código generado por uic se compila en la aplicación, pero el archivo .ui en sí no contiene código ejecutable; toda la lógica reside en el archivo .cpp complementario.
Detalles del formato
en pocas palabras- Archivo FLUID (FLTK User Interface Designer) - La herramienta FLUID de FLTK utiliza principalmente archivos .fl, pero algunos proyectos antiguos o variantes pueden usar .ui para las descripciones de GUI de FLTK.
- Descripción de UI genérica / otros frameworks - Otros kits de herramientas GUI (como wxFormBuilder o Glade para GTK) pueden usar la extensión .ui; los archivos XML de Glade para GTK también son .ui (formato GtkBuilder).
Programas que abren archivos UI
Detalles técnicos
especificación profunda| Formato de contenedor | Documento XML (texto plano UTF-8) |
| Elemento raíz | <ui version="4.0"> - cadena de versión sin cambios desde Qt 4 para compatibilidad con versiones anteriores en Qt 4, 5 y 6 |
| Jerarquía de widgets | Elementos <widget> anidados con hijos <property> tipados (geometría, texto, fuente, paleta y más) |
| Codificación de señales/ranuras | Bloque <connections> que enumera el objeto emisor, el nombre de la señal, el objeto receptor y el nombre de la ranura (slot) |
| Referencias de recursos | Bloque <resources> que enumera los alias de archivos .qrc para iconos y otros activos |
| Soporte de widgets personalizados | Bloque <customwidgets> que declara el nombre de la clase, la cabecera include y el indicador de contenedor para widgets no estándar |
| Compilación en tiempo de construcción | El uic (User Interface Compiler) de Qt genera una cabecera C++ (ej. ui_mainwindow.h) a partir del archivo .ui al compilar |
| Despliegue en tiempo de ejecución | Archivo exclusivo de tiempo de diseño; no se despliega - se compila en el código C++ generado durante la construcción |
| Tipo MIME | application/x-designer |
| Codificación | Texto plano UTF-8; sin secciones binarias |
| Soporte de plataformas | Windows, Linux, macOS, Android (Qt for Android), iOS (Qt for iOS), Linux embebido |
| Integración de proyectos | Referenciado por archivos de proyecto .pro / .pri mediante la variable FORMS; también soportado vía qt_add_ui() en compilaciones CMake de Qt 6 |
| Lanzado | ~1999 (Qt Designer introduced with Qt 2.x) |
| Última versión | Qt 6 UI format (2020+); backward compatible with Qt 4/5 UI files |
| Estándar abierto | Sí · libre de regalías |
| Especificación | doc.qt.io |
Conversiones de UI
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos UI.