Qu'est-ce que le format de fichier UI ?
Un fichier .ui est une description de mise en page de formulaire basée sur XML, créée et éditée par Qt Designer, l'éditeur GUI visuel fourni avec Qt Creator. Il définit la hiérarchie des widgets, les propriétés, les connexions signaux/slots et les références de ressources qui composent une boîte de dialogue ou une fenêtre Qt Widgets - mais il s'agit d'un artefact de conception uniquement qui n'est jamais déployé lors de l'exécution.
Le fichier commence par une déclaration XML standard suivie d'un élément racine <ui version="4.0">. À l'intérieur, une arborescence <widget> reflète la hiérarchie des composants, chaque nœud portant des éléments <property> pour la géométrie, le texte, les polices et d'autres attributs. Les connexions signaux/slots sont répertoriées dans un bloc <connections> ; les enregistrements de widgets personnalisés apparaissent sous <customwidgets> ; les alias de ressources intégrées se trouvent dans <resources>.
Au moment de la compilation, l'outil uic (User Interface Compiler) de Qt lit le fichier .ui et génère un en-tête C++ - par exemple, ui_mainwindow.h - qui instancie et configure tous les widgets. Cet en-tête généré est inclus via #include par le fichier d'implémentation .cpp correspondant. Le schéma XML est stable depuis Qt 4 (2005) et est entièrement pris en charge par Qt 5 et Qt 6 ; les trois versions conservent la chaîne d'attribut version="4.0" pour la compatibilité ascendante.
Pour les interfaces Qt Quick modernes basées sur .qml, les fichiers .ui ne sont pas utilisés. Ils restent la norme pour les applications Qt Widgets traditionnelles sur Windows, Linux, macOS, Android, iOS et les cibles embarquées. Qt Designer (également disponible en tant qu'outil autonome) et n'importe quel éditeur XML en texte brut peuvent ouvrir les fichiers .ui.
Sécurité et sûreté
RISQUE : LOWLes fichiers .ui sont du XML pur et ne présentent aucun risque d'exécution lorsqu'ils sont ouverts dans un éditeur de texte. Dans un environnement de build, le code généré par uic est compilé dans l'application - mais le fichier .ui lui-même ne contient aucun code exécutable ; toute la logique se trouve dans le compagnon .cpp.
Détails du format
en bref- Fichier FLUID (FLTK User Interface Designer) - L'outil FLUID de FLTK utilise principalement des fichiers .fl, mais certains anciens projets ou variantes peuvent utiliser .ui pour les descriptions GUI de FLTK.
- Description UI générique / autres frameworks - D'autres boîtes à outils GUI (wxFormBuilder, Glade pour GTK) peuvent utiliser l'extension .ui ; les fichiers XML Glade pour GTK sont également des .ui (format GtkBuilder).
Programmes qui ouvrent les fichiers UI
Détails techniques
spécifications approfondies| Format de conteneur | Document XML (texte brut UTF-8) |
| Élément racine | <ui version="4.0"> - chaîne de version inchangée depuis Qt 4 pour la compatibilité entre Qt 4, 5 et 6 |
| Hiérarchie des widgets | Éléments <widget> imbriqués avec des enfants <property> typés (géométrie, texte, police, palette, etc.) |
| Encodage signaux/slots | Bloc <connections> listant l'objet émetteur, le nom du signal, l'objet récepteur et le nom du slot |
| Références de ressources | Bloc <resources> listant les alias de fichiers .qrc pour les icônes et autres actifs |
| Support des widgets personnalisés | Bloc <customwidgets> déclarant le nom de la classe, l'en-tête d'inclusion et l'indicateur de conteneur pour les widgets non standard |
| Compilation au build | L'outil uic (User Interface Compiler) de Qt génère un en-tête C++ (ex: ui_mainwindow.h) à partir du fichier .ui lors de la compilation |
| Déploiement à l'exécution | Fichier de conception uniquement ; non déployé - compilé en code C++ généré pendant le build |
| Type MIME | application/x-designer |
| Encodage | Texte brut UTF-8 ; aucune section binaire |
| Plateformes supportées | Windows, Linux, macOS, Android (Qt for Android), iOS (Qt for iOS), Linux embarqué |
| Intégration de projet | Référencé par les fichiers de projet .pro / .pri via la variable FORMS ; également supporté via qt_add_ui() dans les builds CMake de Qt 6 |
| Publié | ~1999 (Qt Designer introduced with Qt 2.x) |
| Dernière version | Qt 6 UI format (2020+); backward compatible with Qt 4/5 UI files |
| Standard ouvert | Oui · libre de droits |
| Spécification | doc.qt.io |
Conversions UI
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers UI.