O que é o formato de ficheiro UI?
Um arquivo .ui é uma descrição de layout de formulário baseada em XML criada e editada pelo Qt Designer, o editor visual de GUI incluído no Qt Creator. Ele define a hierarquia de widgets, propriedades, conexões de sinal/slot (signal/slot) e referências de recursos que compõem um diálogo ou janela do Qt Widgets - mas é um artefato apenas de tempo de design e nunca é implantado em tempo de execução.
O arquivo começa com uma declaração XML padrão seguida por um elemento raiz <ui version="4.0">. Internamente, uma árvore <widget> espelha a hierarquia de widgets, com cada nó carregando elementos <property> para geometria, texto, fontes e outros atributos. As conexões de sinal/slot são listadas em um bloco <connections>; registros de widgets personalizados aparecem em <customwidgets>; aliases de recursos incorporados ficam em <resources>.
No momento da compilação, o uic (User Interface Compiler) do Qt lê o arquivo .ui e gera um cabeçalho C++ - por exemplo, ui_mainwindow.h - que instancia e configura todos os widgets. Este cabeçalho gerado é incluído via #include pelo arquivo de implementação .cpp correspondente. O esquema XML tem sido estável desde o Qt 4 (2005) e é totalmente suportado no Qt 5 e Qt 6; todas as três versões mantêm a string de atributo version="4.0" para compatibilidade reversa.
Para interfaces modernas baseadas em .qml do Qt Quick, os arquivos .ui não são usados. Eles continuam sendo o padrão para aplicações tradicionais de Qt Widgets no Windows, Linux, macOS, Android, iOS e alvos embarcados. O Qt Designer (também disponível como uma ferramenta autônoma) e qualquer editor de XML de texto simples podem abrir arquivos .ui.
Segurança e proteção
RISCO: LOWArquivos .ui são XML simples e não apresentam risco de execução quando abertos em um editor de texto. Em um ambiente de compilação, o código gerado pelo uic é compilado na aplicação - mas o arquivo .ui em si não contém código executável; toda a lógica está no companheiro .cpp.
Detalhes do formato
em resumo- Arquivo FLUID (FLTK User Interface Designer) - A ferramenta FLUID do FLTK usa principalmente arquivos .fl, mas alguns projetos antigos ou variantes podem usar .ui para descrições de GUI do FLTK.
- Descrição de UI genérica / outros frameworks - Alguns outros toolkits de GUI (wxFormBuilder, Glade para GTK) podem usar a extensão .ui; arquivos XML do Glade para GTK também são .ui (formato GtkBuilder).
Programas que abrem arquivos UI
Detalhes técnicos
especificação profunda| Formato de contêiner | Documento XML (texto simples UTF-8) |
| Elemento raiz | <ui version="4.0"> - string de versão inalterada desde o Qt 4 para compatibilidade reversa entre Qt 4, 5 e 6 |
| Hierarquia de widgets | Elementos <widget> aninhados com filhos <property> tipados (geometria, texto, fonte, paleta e mais) |
| Codificação de sinal/slot | Bloco <connections> listando objeto remetente, nome do sinal, objeto receptor e nome do slot |
| Referências de recursos | Bloco <resources> listando aliases de arquivos .qrc para ícones e outros ativos |
| Suporte a widgets personalizados | Bloco <customwidgets> declarando nome da classe, cabeçalho de inclusão e sinalizador de contêiner para widgets não padronizados |
| Compilação em tempo de build | O uic (User Interface Compiler) do Qt gera um cabeçalho C++ (ex: ui_mainwindow.h) a partir do arquivo .ui no momento da compilação |
| Implantação em tempo de execução | Arquivo apenas de tempo de design; não implantado - compilado em código C++ gerado durante o build |
| Tipo MIME | application/x-designer |
| Codificação | Texto simples UTF-8; sem seções binárias |
| Suporte de plataforma | Windows, Linux, macOS, Android (Qt for Android), iOS (Qt for iOS), Linux embarcado |
| Integração de projeto | Referenciado por arquivos de projeto .pro / .pri via variável FORMS; também suportado via qt_add_ui() em builds CMake do Qt 6 |
| Lançado | ~1999 (Qt Designer introduced with Qt 2.x) |
| Versão mais recente | Qt 6 UI format (2020+); backward compatible with Qt 4/5 UI files |
| Padrão aberto | Sim · livre de royalties |
| Especificação | doc.qt.io |
Conversões de UI
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos UI.