Che cos'è il formato di file UI?
Un file .ui è una descrizione del layout di un modulo basata su XML, creata e modificata da Qt Designer, l'editor grafico GUI incluso in Qt Creator. Definisce la gerarchia dei widget, le proprietà, le connessioni signal/slot e i riferimenti alle risorse che compongono una finestra di dialogo o una finestra di Qt Widgets - ma è un artefatto solo per la fase di progettazione e non viene mai distribuito a runtime.
Il file inizia con una dichiarazione XML standard seguita da un elemento radice <ui version="4.0">. All'interno, un albero <widget> rispecchia la gerarchia dei widget, dove ogni nodo contiene elementi <property> per geometria, testo, font e altri attributi. Le connessioni signal/slot sono elencate in un blocco <connections>; le registrazioni di widget personalizzati appaiono sotto <customwidgets>; gli alias delle risorse incorporate si trovano in <resources>.
In fase di build, lo strumento uic (User Interface Compiler) di Qt legge il file .ui e genera un header C++ - ad esempio, ui_mainwindow.h - che istanzia e configura tutti i widget. Questo header generato viene incluso tramite #include dal corrispondente file di implementazione .cpp. Lo schema XML è rimasto stabile da Qt 4 (2005) ed è pienamente supportato in Qt 5 e Qt 6; tutte e tre le versioni mantengono la stringa dell'attributo version="4.0" per compatibilità retroattiva.
Per le moderne interfacce Qt Quick basate su .qml, i file .ui non vengono utilizzati. Essi rimangono lo standard per le applicazioni Qt Widgets tradizionali su Windows, Linux, macOS, Android, iOS e sistemi embedded. Qt Designer (disponibile anche come strumento standalone) e qualsiasi editor XML di testo semplice possono aprire i file .ui.
Sicurezza e incolumità
RISCHIO: LOWI file .ui sono semplice XML e non presentano rischi di esecuzione quando aperti in un editor di testo. In un ambiente di build, il codice generato da uic viene compilato nell'applicazione - ma il file .ui in sé non contiene codice eseguibile; tutta la logica risiede nel file .cpp associato.
Dettagli del formato
in sintesi- File FLUID (FLTK User Interface Designer) - Lo strumento FLUID di FLTK utilizza principalmente file .fl, ma alcuni progetti più vecchi o varianti potrebbero utilizzare .ui per le descrizioni GUI di FLTK.
- Descrizione UI generica / altri framework - Alcuni altri toolkit GUI (wxFormBuilder, Glade per GTK) possono utilizzare l'estensione .ui; i file XML di Glade per GTK sono anch'essi .ui (formato GtkBuilder).
Programmi che aprono file UI
Dettagli tecnici
specifiche approfondite| Formato contenitore | Documento XML (testo semplice UTF-8) |
| Elemento radice | <ui version="4.0"> - stringa di versione invariata da Qt 4 per compatibilità retroattiva tra Qt 4, 5 e 6 |
| Gerarchia dei widget | Elementi <widget> annidati con figli <property> tipizzati (geometria, testo, font, tavolozza e altro) |
| Codifica signal/slot | Blocco <connections> che elenca l'oggetto mittente, il nome del segnale, l'oggetto ricevente e il nome dello slot |
| Riferimenti alle risorse | Blocco <resources> che elenca gli alias dei file .qrc per icone e altri asset |
| Supporto widget personalizzati | Blocco <customwidgets> che dichiara il nome della classe, l'header da includere e il flag contenitore per widget non standard |
| Compilazione in fase di build | Lo strumento uic (User Interface Compiler) di Qt genera un header C++ (es. ui_mainwindow.h) dal file .ui durante la build |
| Distribuzione a runtime | File solo per la fase di progettazione; non distribuito - viene compilato nel codice C++ generato durante la build |
| Tipo MIME | application/x-designer |
| Codifica | Testo semplice UTF-8; nessuna sezione binaria |
| Supporto piattaforme | Windows, Linux, macOS, Android (Qt for Android), iOS (Qt for iOS), Linux embedded |
| Integrazione progetto | Referenziato dai file di progetto .pro / .pri tramite la variabile FORMS; supportato anche tramite qt_add_ui() nelle build CMake di Qt 6 |
| Rilasciato | ~1999 (Qt Designer introduced with Qt 2.x) |
| Ultima versione | Qt 6 UI format (2020+); backward compatible with Qt 4/5 UI files |
| Standard aperto | Sì · royalty-free |
| Specifica | doc.qt.io |
Conversioni UI
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file UI.