Что такое формат файла UI?
Файл .ui - это описание макета формы на базе XML, созданное и редактируемое в Qt Designer, визуальном редакторе GUI, поставляемом вместе с Qt Creator. Он определяет иерархию виджетов, свойства, соединения сигналов и слотов, а также ссылки на ресурсы, из которых состоит диалоговое окно или окно Qt Widgets - но является лишь артефактом этапа проектирования и никогда не развертывается во время выполнения.
Файл начинается со стандартного объявления XML, за которым следует корневой элемент <ui version="4.0">. Внутри дерево <widget> отражает иерархию виджетов, где каждый узел содержит элементы <property> для геометрии, текста, шрифтов и других атрибутов. Соединения сигналов и слотов перечислены в блоке <connections>; регистрации пользовательских виджетов находятся в <customwidgets>; псевдонимы встроенных ресурсов располагаются в <resources>.
Во время сборки инструмент Qt uic (User Interface Compiler) считывает файл .ui и генерирует заголовочный файл C++ - например, ui_mainwindow.h, - который создает экземпляры и настраивает все виджеты. Этот сгенерированный заголовок подключается через #include в соответствующий файл реализации .cpp. Схема XML остается стабильной с момента выхода Qt 4 (2005) и полностью поддерживается в Qt 5 и Qt 6; все три версии сохраняют строку атрибута version="4.0" для обратной совместимости.
Для современных интерфейсов Qt Quick на базе .qml файлы .ui не используются. Они остаются стандартом для традиционных приложений Qt Widgets на Windows, Linux, macOS, Android, iOS и встраиваемых системах. Qt Designer (также доступный как отдельный инструмент) и любой текстовый XML-редактор могут открывать файлы .ui.
Безопасность и защита
РИСК: LOWФайлы .ui представляют собой обычный XML и не несут риска выполнения при открытии в текстовом редакторе. В среде сборки код, созданный uic, компилируется в приложение, но сам файл .ui не содержит исполняемого кода; вся логика находится в сопутствующем файле .cpp.
Детали формата
в двух словах- Файл FLUID (FLTK User Interface Designer) - Инструмент FLUID для FLTK в основном использует файлы .fl, но некоторые старые проекты или варианты могут использовать .ui для описания GUI FLTK.
- Общее описание UI / другие фреймворки - Некоторые другие инструментарии GUI (wxFormBuilder, Glade для GTK) могут использовать расширение .ui; XML-файлы Glade для GTK также имеют расширение .ui (формат GtkBuilder).
Программы, открывающие файлы UI
Технические подробности
глубокая спецификация| Формат контейнера | Документ XML (простой текст UTF-8) |
| Корневой элемент | <ui version="4.0"> - строка версии не менялась со времен Qt 4 для обеспечения обратной совместимости между Qt 4, 5 и 6 |
| Иерархия виджетов | Вложенные элементы <widget> с типизированными дочерними элементами <property> (геометрия, текст, шрифт, палитра и др.) |
| Кодирование сигналов/слотов | Блок <connections>, перечисляющий объект-отправитель, имя сигнала, объект-получатель и имя слота |
| Ссылки на ресурсы | Блок <resources>, содержащий псевдонимы файлов .qrc для иконок и других ресурсов |
| Поддержка пользовательских виджетов | Блок <customwidgets>, объявляющий имя класса, заголовочный файл для включения и флаг контейнера для нестандартных виджетов |
| Компиляция при сборке | Инструмент Qt uic (User Interface Compiler) генерирует заголовочный файл C++ (например, ui_mainwindow.h) из файла .ui во время сборки |
| Развертывание во время выполнения | Файл только для этапа проектирования; не развертывается - компилируется в сгенерированный код C++ во время сборки |
| MIME-тип | application/x-designer |
| Кодировка | Простой текст UTF-8; без бинарных разделов |
| Поддержка платформ | Windows, Linux, macOS, Android (Qt for Android), iOS (Qt for iOS), embedded Linux |
| Интеграция в проект | Упоминается в файлах проекта .pro / .pri через переменную FORMS; также поддерживается через qt_add_ui() в сборках CMake для Qt 6 |
| Выпущен | ~1999 (Qt Designer introduced with Qt 2.x) |
| Последняя версия | Qt 6 UI format (2020+); backward compatible with Qt 4/5 UI files |
| Открыть стандартное | Да · без роялти |
| Спецификация | doc.qt.io |
Конвертации UI
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах UI.