Przedstawiono Blueprint — nowy język budowania interfejsów użytkownika dla GTK.

James Westman, deweloper aplikacji GNOME Maps, zaprezentował nowy język znaczników Blueprint, przeznaczony do budowy interfejsów z wykorzystaniem biblioteki GTK. Kod kompilatora do przekształcania znaczników Blueprint w pliki ui GTK napisany jest w języku Python i jest udostępniany na licencji LGPLv3.

Za przyczynę stworzenia projektu uznano powiązanie wykorzystywanych w GTK plików ui opisu interfejsu z formatem XML, który jest przeciążony i nieprzyjazny do ręcznego pisania lub edytowania znaczników. Format Blueprint wyróżnia się czytelnością przedstawiania informacji i dzięki przejrzystemu składniowi umożliwia obejście się bez specjalistycznych wizualnych edytorów interfejsu podczas tworzenia, edytowania i oceny zmian w elementach interfejsu.

Jednocześnie Blueprint nie wymaga zmian w GTK, w pełni powtarza model widżetów GTK i jest pozycjonowany jako nakładka, która kompiluje znaczniki do standardowego formatu XML dla GtkBuilder. Funkcjonalności Blueprint są w pełni zgodne z GtkBuilder, różni się jedynie metodą przedstawiania informacji. Aby przetransportować projekt do Blue принт, wystarczy dodać wywołanie blueprint-compiler do skryptu budowania bez zmiany kodu. using Gtk 4.0; template MyAppWindow : Gtk.ApplicationWindow { title: _(„My App Title”); [titlebar] HeaderBar header_bar {} Label { styles [„heading”] label: _(„Hello, world!”); } }

Przedstawiono Blueprint - nowy język do tworzenia interfejsów użytkownika dla GTK

Oprócz kompilatora do standardowego formatu XML GTK w opracowaniu znajduje się również wtyczka z obsługą Blueprint do zintegrowanego środowiska programistycznego GNOME Builder. Osobno rozwijany jest serwer LSP (Language Server Protocol) dla Blueprint, który będzie można wykorzystać do podświetlania, analizy błędów, wyświetlania podpowiedzi i automatycznego uzupełniania kodu w obsługujących LSP edytorach kodu, w tym Visual Studio Code.

W planach dotyczących rozwoju Blueprint zaznacza się dodanie do znaczników elementów reaktywnego programowania, realizowanego z wykorzystaniem klasy Gtk.Expression, udostępnianej w GTK4. Proponowana metoda jest bardziej znajoma dla programistów interfejsów webowych w języku JavaScript i pozwala na automatyczną synchronizację przedstawienia interfejsu z powiązaną modelą danych, bez konieczności wymuszenia aktualizacji interfejsu użytkownika po każdej zmianie danych.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster