Hvad er UI-filformatet?
En .ui-fil er en XML-baseret formularlayoutbeskrivelse oprettet og redigeret af Qt Designer, den visuelle GUI-editor, der følger med Qt Creator. Den definerer widget-hierarkiet, egenskaber, signal/slot-forbindelser og ressourcespecifikationer, der udgør en Qt Widgets-dialog eller et vindue - men det er udelukkende et design-artefakt og bliver aldrig distribueret ved kørsel.
Filen begynder med en standard XML-deklaration efterfulgt af et <ui version="4.0"> rodelement. Indeni afspejler et <widget>-træ widget-hierarkiet, hvor hver node indeholder <property>-elementer for geometri, tekst, skrifttyper og andre attributter. Signal/slot-forbindelser er anført i en <connections>-blok; brugerdefinerede widget-registreringer vises under <customwidgets>; indlejrede ressource-aliasser findes i <resources>.
Under build-processen læser Qts uic (User Interface Compiler) .ui-filen og genererer en C++ header - for eksempel ui_mainwindow.h - som instansierer og konfigurerer alle widgets. Denne genererede header bliver #included af den tilsvarende .cpp-implementeringsfil. XML-skemaet har været stabilt siden Qt 4 (2005) og er fuldt understøttet i Qt 5 og Qt 6; alle tre versioner bibeholder version="4.0" attribut-strengen for bagudkompatibilitet.
Til moderne .qml-baserede Qt Quick-grænseflader anvendes .ui-filer ikke. De forbliver standarden for traditionelle Qt Widgets-applikationer på Windows, Linux, macOS, Android, iOS og indlejrede systemer. Qt Designer (også tilgængelig som et selvstændigt værktøj) og enhver almindelig XML-teksteditor kan åbne .ui-filer.
Sikkerhed og tryghed
RISIKO: LOW.ui-filer er ren XML og udgør ingen eksekveringsrisiko, når de åbnes i en teksteditor. I et build-miljø bliver uic-genereret kode kompileret ind i applikationen - men selve .ui-filen indeholder ingen eksekverbar kode; al logik ligger i den tilhørende .cpp-fil.
Formatdetaljer
kort fortalt- FLUID (FLTK User Interface Designer) fil - FLTK's FLUID-værktøj bruger primært .fl-filer, men nogle ældre projekter eller varianter kan bruge .ui til FLTK GUI-beskrivelser.
- Generisk UI-beskrivelse / andre frameworks - Visse andre GUI-værktøjssæt (wxFormBuilder, Glade til GTK) kan bruge .ui-filendelsen; Glade XML-filer til GTK er også .ui (GtkBuilder-format).
Programmer der åbner UI-filer
Tekniske detaljer
dyb specifikation| Containerformat | XML-dokument (UTF-8 almindelig tekst) |
| Rodelement | <ui version="4.0"> - versionsstreng uændret siden Qt 4 for bagudkompatibilitet på tværs af Qt 4, 5 og 6 |
| Widget-hierarki | Indlejrede <widget>-elementer med typede <property>-underlementer (geometri, tekst, skrifttype, palet med mere) |
| Signal/slot-kodning | <connections>-blok, der viser afsenderobjekt, signalnavn, modtagerobjekt og slotnavn |
| Ressourcespecifikationer | <resources>-blok, der viser .qrc-filaliasser for ikoner og andre aktiver |
| Understøttelse af brugerdefinerede widgets | <customwidgets>-blok, der erklærer klassenavn, include-header og container-flag for ikke-standard widgets |
| Build-tids kompilering | Qts uic (User Interface Compiler) genererer en C++ header (f.eks. ui_mainwindow.h) fra .ui-filen under build-processen |
| Runtime-distribution | Kun design-tidsfil; distribueres ikke - kompileres væk til genereret C++ kode under build |
| MIME-type | application/x-designer |
| Kodning | UTF-8 almindelig tekst; ingen binære sektioner |
| Platformunderstøttelse | Windows, Linux, macOS, Android (Qt for Android), iOS (Qt for iOS), indlejret Linux |
| Projektintegration | Refereres af .pro / .pri projektfiler via FORMS-variablen; også understøttet via qt_add_ui() i Qt 6 CMake-builds |
| Udgivet | ~1999 (Qt Designer introduced with Qt 2.x) |
| Seneste version | Qt 6 UI format (2020+); backward compatible with Qt 4/5 UI files |
| Åben standard | Ja · royaltyfri |
| Specifikation | doc.qt.io |
UI-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om UI-filer.