Co to jest format pliku UI?
Plik .ui to oparty na formacie XML opis układu formularza, tworzony i edytowany w Qt Designer, wizualnym edytorze GUI dołączonym do Qt Creator. Definiuje on hierarchię widżetów, właściwości, połączenia sygnałów i slotów (signal/slot) oraz odniesienia do zasobów, które składają się na okno dialogowe lub okno Qt Widgets - jest to jednak artefakt wyłącznie z etapu projektowania i nie jest wdrażany w czasie wykonywania aplikacji.
Plik zaczyna się od standardowej deklaracji XML, po której następuje element główny <ui version="4.0">. Wewnątrz drzewo <widget> odzwierciedla hierarchię widżetów, gdzie każdy węzeł zawiera elementy <property> dla geometrii, tekstu, czcionek i innych atrybutów. Połączenia sygnałów/slotów są wymienione w bloku <connections>; rejestracje niestandardowych widżetów pojawiają się w <customwidgets>, a aliasy osadzonych zasobów znajdują się w <resources>.
W czasie budowania narzędzie uic (User Interface Compiler) odczytuje plik .ui i generuje nagłówek C++ - na przykład ui_mainwindow.h - który tworzy instancje i konfiguruje wszystkie widżety. Ten wygenerowany nagłówek jest dołączany dyrektywą #include przez odpowiedni plik implementacji .cpp. Schemat XML jest stabilny od wersji Qt 4 (2005) i jest w pełni obsługiwany w Qt 5 oraz Qt 6; wszystkie trzy wersje zachowują ciąg atrybutu version="4.0" dla zapewnienia kompatybilności wstecznej.
W przypadku nowoczesnych interfejsów Qt Quick opartych na .qml, pliki .ui nie są używane. Pozostają one standardem dla tradycyjnych aplikacji Qt Widgets na systemach Windows, Linux, macOS, Android, iOS oraz platformach wbudowanych. Pliki .ui można otwierać w Qt Designer (dostępnym również jako samodzielne narzędzie) oraz w dowolnym edytorze tekstowym XML.
Bezpieczeństwo
RYZYKO: LOWPliki .ui to zwykły XML i nie stanowią ryzyka wykonania przy otwieraniu w edytorze tekstu. W środowisku budowania kod wygenerowany przez uic jest kompilowany do aplikacji - jednak sam plik .ui nie zawiera kodu wykonywalnego; cała logika znajduje się w towarzyszącym pliku .cpp.
Szczegóły formatu
w pigułce- Plik FLUID (FLTK User Interface Designer) - Narzędzie FLUID z biblioteki FLTK używa głównie plików .fl, ale niektóre starsze projekty lub warianty mogą używać .ui do opisów GUI FLTK.
- Generyczny opis UI / inne frameworki - Niektóre inne zestawy narzędzi GUI (wxFormBuilder, Glade dla GTK) mogą używać rozszerzenia .ui; pliki XML Glade dla GTK również mają rozszerzenie .ui (format GtkBuilder).
Programy otwierające pliki UI
Szczegóły techniczne
specyfikacja| Format kontenera | Dokument XML (zwykły tekst UTF-8) |
| Element główny | <ui version="4.0"> - ciąg wersji niezmieniony od Qt 4 dla zachowania kompatybilności wstecznej między Qt 4, 5 i 6 |
| Hierarchia widżetów | Zagnieżdżone elementy <widget> z typowanymi elementami podrzędnymi <property> (geometria, tekst, czcionka, paleta i inne) |
| Kodowanie sygnałów/slotów | Blok <connections> wymieniający obiekt wysyłający, nazwę sygnału, obiekt odbierający i nazwę slotu |
| Odniesienia do zasobów | Blok <resources> wymieniający aliasy plików .qrc dla ikon i innych zasobów |
| Obsługa niestandardowych widżetów | Blok <customwidgets> deklarujący nazwę klasy, nagłówek include i flagę kontenera dla niestandardowych widżetów |
| Kompilacja w czasie budowania | Narzędzie uic (User Interface Compiler) generuje nagłówek C++ (np. ui_mainwindow.h) z pliku .ui podczas budowania projektu |
| Wdrażanie w czasie wykonywania | Plik wyłącznie projektowy; nie jest wdrażany - kompilowany do wygenerowanego kodu C++ podczas budowania |
| Typ MIME | application/x-designer |
| Kodowanie | Zwykły tekst UTF-8; brak sekcji binarnych |
| Obsługa platform | Windows, Linux, macOS, Android (Qt for Android), iOS (Qt for iOS), embedded Linux |
| Integracja z projektem | Przywoływany przez pliki projektu .pro / .pri za pomocą zmiennej FORMS; obsługiwany również przez qt_add_ui() w projektach CMake dla Qt 6 |
| Wydano | ~1999 (Qt Designer introduced with Qt 2.x) |
| Najnowsza wersja | Qt 6 UI format (2020+); backward compatible with Qt 4/5 UI files |
| Otwarty standard | Tak · bezpłatny (royalty-free) |
| Specyfikacja | doc.qt.io |
Konwersje UI
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki UI.