Vad är filformatet UI?
En .ui-fil är en XML-baserad beskrivning av en formulärlayout skapad och redigerad av Qt Designer, den visuella GUI-redigeraren som medföljer Qt Creator. Den definierar widgethierarkin, egenskaper, signal/slot-anslutningar och resursreferenser som utgör en Qt Widgets-dialog eller ett fönster - men det är en artefakt som endast används vid design och distribueras aldrig vid körning.
Filen börjar med en standard XML-deklaration följt av ett <ui version="4.0">-rotelement. Inuti speglar ett <widget>-träd widgethierarkin, där varje nod innehåller <property>-element för geometri, text, typsnitt och andra attribut. Signal/slot-anslutningar listas i ett <connections>-block; registreringar av anpassade widgets visas under <customwidgets>; inbäddade resursalias finns i <resources>.
Vid byggtiden läser Qts uic (User Interface Compiler) .ui-filen och genererar en C++-header - till exempel ui_mainwindow.h - som instansierar och konfigurerar alla widgets. Denna genererade header inkluderas med #include i motsvarande .cpp-implementationsfil. XML-schemat har varit stabilt sedan Qt 4 (2005) och stöds fullt ut i Qt 5 och Qt 6; alla tre versioner behåller attributsträngen version="4.0" för bakåtkompatibilitet.
För moderna .qml-baserade Qt Quick-gränssnitt används inte .ui-filer. De förblir standarden för traditionella Qt Widgets-applikationer på Windows, Linux, macOS, Android, iOS och inbäddade system. Qt Designer (även tillgänglig som ett fristående verktyg) och valfri XML-redigerare för vanlig text kan öppna .ui-filer.
Säkerhet & trygghet
RISK: LOW.ui-filer är ren XML och utgör ingen risk för exekvering när de öppnas i en textredigerare. I en byggmiljö kompileras uic-genererad kod in i applikationen - men själva .ui-filen innehåller ingen exekverbar kod; all logik finns i den tillhörande .cpp-filen.
Formatdetaljer
i ett nötskal- FLUID (FLTK User Interface Designer) fil - FLTK:s FLUID-verktyg använder främst .fl-filer, men vissa äldre projekt eller varianter kan använda .ui för FLTK GUI-beskrivningar.
- Generisk UI-beskrivning / andra ramverk - Vissa andra GUI-verktyg (wxFormBuilder, Glade för GTK) kan använda filändelsen .ui; Glade XML-filer för GTK är också .ui (GtkBuilder-format).
Program som öppnar UI-filer
Tekniska detaljer
djup specifikation| Containerformat | XML-dokument (UTF-8 vanlig text) |
| Rotelement | <ui version="4.0"> - versionssträngen är oförändrad sedan Qt 4 för bakåtkompatibilitet mellan Qt 4, 5 och 6 |
| Widgethierarki | Nästlade <widget>-element med typade <property>-underordnade (geometri, text, typsnitt, palett med mera) |
| Signal/slot-kodning | <connections>-block som listar sändarobjekt, signalnamn, mottagarobjekt och slotnamn |
| Resursreferenser | <resources>-block som listar .qrc-filalias för ikoner och andra tillgångar |
| Stöd för anpassade widgets | <customwidgets>-block som deklarerar klassnamn, include-header och container-flagga för icke-standardiserade widgets |
| Kompilering vid byggtid | Qts uic (User Interface Compiler) genererar en C++-header (t.ex. ui_mainwindow.h) från .ui-filen vid byggtiden |
| Distribution vid körning | Endast fil för designtid; distribueras inte - kompileras bort till genererad C++-kod under bygget |
| MIME-typ | application/x-designer |
| Kodning | UTF-8 vanlig text; inga binära sektioner |
| Plattformsstöd | Windows, Linux, macOS, Android (Qt for Android), iOS (Qt for iOS), inbäddad Linux |
| Projektintegration | Refereras av .pro / .pri-projektfiler via variabeln FORMS; stöds även via qt_add_ui() i Qt 6 CMake-byggen |
| Släppt | ~1999 (Qt Designer introduced with Qt 2.x) |
| Senaste version | Qt 6 UI format (2020+); backward compatible with Qt 4/5 UI files |
| Öppen standard | Ja · royaltyfri |
| Specifikation | doc.qt.io |
UI-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om UI-filer.