Was ist das UI-Dateiformat?
Eine .ui-Datei ist eine XML-basierte Formularlayout-Beschreibung, die mit Qt Designer erstellt und bearbeitet wird, dem visuellen GUI-Editor, der mit Qt Creator gebündelt ist. Sie definiert die Widget-Hierarchie, Eigenschaften, Signal/Slot-Verbindungen und Ressourcen-Referenzen, die einen Qt Widgets-Dialog oder ein Fenster ausmachen - ist jedoch nur ein Entwurfszeit-Artefakt und wird zur Laufzeit nie bereitgestellt.
Die Datei beginnt mit einer Standard-XML-Deklaration, gefolgt von einem <ui version="4.0">-Wurzelelement. Im Inneren spiegelt ein <widget>-Baum die Widget-Hierarchie wider, wobei jeder Knoten <property>-Elemente für Geometrie, Text, Schriftarten und andere Attribute trägt. Signal/Slot-Verbindungen sind in einem <connections>-Block aufgeführt; Registrierungen für benutzerdefinierte Widgets erscheinen unter <customwidgets>; eingebettete Ressourcen-Aliase befinden sich in <resources>.
Zur Build-Zeit liest Qts uic (User Interface Compiler) die .ui-Datei und generiert einen C++-Header - zum Beispiel ui_mainwindow.h -, der alle Widgets instanziiert und konfiguriert. Dieser generierte Header wird von der entsprechenden .cpp-Implementierungsdatei per #include eingebunden. Das XML-Schema ist seit Qt 4 (2005) stabil und wird in Qt 5 und Qt 6 vollständig unterstützt; alle drei Versionen behalten die Attributzeichenfolge version="4.0" zur Abwärtskompatibilität bei.
Für moderne .qml-basierte Qt Quick-Oberflächen werden keine .ui-Dateien verwendet. Sie bleiben der Standard für traditionelle Qt Widgets-Anwendungen unter Windows, Linux, macOS, Android, iOS und eingebetteten Systemen. Qt Designer (auch als eigenständiges Tool verfügbar) und jeder reine XML-Texteditor können .ui-Dateien öffnen.
Sicherheit
RISIKO: LOW.ui-Dateien sind reines XML und stellen kein Ausführungsrisiko dar, wenn sie in einem Texteditor geöffnet werden. In einer Build-Umgebung wird der von uic generierte Code in die Anwendung kompiliert - aber die .ui-Datei selbst enthält keinen ausführbaren Code; die gesamte Logik befindet sich in der zugehörigen .cpp-Datei.
Formatdetails
kurz gefasst- FLUID (FLTK User Interface Designer) Datei - Das FLUID-Tool von FLTK verwendet primär .fl-Dateien, aber einige ältere Projekte oder Varianten verwenden möglicherweise .ui für FLTK-GUI-Beschreibungen.
- Generische UI-Beschreibung / andere Frameworks - Einige andere GUI-Toolkits (wxFormBuilder, Glade für GTK) verwenden möglicherweise die Erweiterung .ui; Glade-XML-Dateien für GTK sind ebenfalls .ui (GtkBuilder-Format).
Programme zum Öffnen von UI-Dateien
Technische Details
technische Spezifikation| Container-Format | XML-Dokument (UTF-8 Klartext) |
| Wurzelelement | <ui version="4.0"> - Versionsstring seit Qt 4 unverändert für Abwärtskompatibilität über Qt 4, 5 und 6 hinweg |
| Widget-Hierarchie | Verschachtelte <widget>-Elemente mit typisierten <property>-Kindelementen (Geometrie, Text, Schriftart, Palette und mehr) |
| Signal/Slot-Kodierung | <connections>-Block mit Auflistung von Sender-Objekt, Signalname, Empfänger-Objekt und Slot-Name |
| Ressourcen-Referenzen | <resources>-Block mit Auflistung von .qrc-Datei-Aliasen für Icons und andere Assets |
| Unterstützung für benutzerdefinierte Widgets | <customwidgets>-Block zur Deklaration von Klassennamen, Include-Header und Container-Flag für Nicht-Standard-Widgets |
| Kompilierung zur Build-Zeit | Qts uic (User Interface Compiler) generiert zur Build-Zeit einen C++-Header (z. B. ui_mainwindow.h) aus der .ui-Datei |
| Laufzeit-Bereitstellung | Nur Entwurfszeit-Datei; wird nicht bereitgestellt - wird während des Builds in generierten C++-Code kompiliert |
| MIME-Typ | application/x-designer |
| Kodierung | UTF-8 Klartext; keine binären Abschnitte |
| Plattformunterstützung | Windows, Linux, macOS, Android (Qt for Android), iOS (Qt for iOS), Embedded Linux |
| Projektintegration | Referenziert durch .pro / .pri Projektdateien über die FORMS-Variable; auch unterstützt über qt_add_ui() in Qt 6 CMake-Builds |
| Veröffentlicht | ~1999 (Qt Designer introduced with Qt 2.x) |
| Neueste Version | Qt 6 UI format (2020+); backward compatible with Qt 4/5 UI files |
| Offener Standard | Ja · lizenzgebührenfrei |
| Spezifikation | doc.qt.io |
UI-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu UI-Dateien.