Wat is het UI-bestandsformaat?
Een .ui-bestand is een op XML gebaseerde formulierlay-outbeschrijving die is gemaakt en bewerkt met Qt Designer, de visuele GUI-editor die wordt meegeleverd met Qt Creator. Het definieert de widget-hiërarchie, eigenschappen, signaal/slot-verbindingen en bronverwijzingen die een Qt Widgets-dialoogvenster of -venster vormen - maar het is uitsluitend een artefact voor ontwerptijd en wordt nooit meegeleverd bij runtime.
Het bestand begint met een standaard XML-declaratie gevolgd door een <ui version="4.0"> root-element. Binnenin weerspiegelt een <widget>-boom de widget-hiërarchie, waarbij elke node <property>-elementen bevat voor geometrie, tekst, lettertypen en andere attributen. Signaal/slot-verbindingen worden vermeld in een <connections>-blok; aangepaste widget-registraties verschijnen onder <customwidgets>; ingebedde bron-aliassen bevinden zich in <resources>.
Tijdens het bouwen leest Qt's uic (User Interface Compiler) het .ui-bestand en genereert een C++ header - bijvoorbeeld ui_mainwindow.h - die alle widgets instantieert en configureert. Deze gegenereerde header wordt ge-#include door het bijbehorende .cpp-implementatiebestand. Het XML-schema is stabiel sinds Qt 4 (2005) en wordt volledig ondersteund in Qt 5 en Qt 6; alle drie de versies behouden de version="4.0" attribuut-string voor achterwaartse compatibiliteit.
Voor moderne op .qml gebaseerde Qt Quick-interfaces worden .ui-bestanden niet gebruikt. Ze blijven de standaard voor traditionele Qt Widgets-applicaties op Windows, Linux, macOS, Android, iOS en embedded systemen. Qt Designer (ook beschikbaar als zelfstandige tool) en elke gewone XML-tekstverwerker kunnen .ui-bestanden openen.
Beveiliging & veiligheid
RISICO: LOW.ui-bestanden zijn gewone XML en vormen geen uitvoeringsrisico wanneer ze in een tekstverwerker worden geopend. In een bouwomgeving wordt door uic gegenereerde code in de applicatie gecompileerd - maar het .ui-bestand zelf bevat geen uitvoerbare code; alle logica bevindt zich in het bijbehorende .cpp-bestand.
Formaatdetails
in een notendop- FLUID (FLTK User Interface Designer) bestand - FLTK's FLUID-tool gebruikt voornamelijk .fl-bestanden, maar sommige oudere projecten of varianten kunnen .ui gebruiken voor FLTK GUI-beschrijvingen.
- Generieke UI-beschrijving / andere frameworks - Sommige andere GUI-toolkits (wxFormBuilder, Glade voor GTK) kunnen de .ui-extensie gebruiken; Glade XML-bestanden voor GTK zijn ook .ui (GtkBuilder-formaat).
Programma's die UI-bestanden openen
Technische details
diepe specificaties| Containerformaat | XML-document (UTF-8 platte tekst) |
| Root-element | <ui version="4.0"> - versiestring ongewijzigd sinds Qt 4 voor achterwaartse compatibiliteit tussen Qt 4, 5 en 6 |
| Widget-hiërarchie | Geneste <widget>-elementen met getypeerde <property>-onderdelen (geometrie, tekst, lettertype, palet en meer) |
| Signaal/slot-codering | <connections>-blok met vermelding van afzenderobject, signaalnaam, ontvangerobject en slotnaam |
| Bronverwijzingen | <resources>-blok met .qrc-bestandsaliassen voor pictogrammen en andere assets |
| Ondersteuning voor aangepaste widgets | <customwidgets>-blok waarin klassenaam, include-header en container-vlag voor niet-standaard widgets worden gedeclareerd |
| Compilatie tijdens bouwen | Qt's uic (User Interface Compiler) genereert tijdens het bouwen een C++ header (bijv. ui_mainwindow.h) uit het .ui-bestand |
| Runtime-implementatie | Alleen bestand voor ontwerptijd; wordt niet meegeleverd - tijdens het bouwen gecompileerd naar gegenereerde C++ code |
| MIME-type | application/x-designer |
| Codering | UTF-8 platte tekst; geen binaire secties |
| Platformondersteuning | Windows, Linux, macOS, Android (Qt for Android), iOS (Qt for iOS), embedded Linux |
| Projectintegratie | Verwezen door .pro / .pri-projectbestanden via de FORMS-variabele; ook ondersteund via qt_add_ui() in Qt 6 CMake-builds |
| Uitgebracht | ~1999 (Qt Designer introduced with Qt 2.x) |
| Laatste versie | Qt 6 UI format (2020+); backward compatible with Qt 4/5 UI files |
| Open standaard | Ja · royaltyvrij |
| Specificatie | doc.qt.io |
UI conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over UI-bestanden.