Introducerade Blueprint, ett nytt användargränssnittsspråk för GTK

James Westman, utvecklare av GNOME Maps-applikationen, introducerade ett nytt märkningsspråk, Blueprint, designat för att bygga gränssnitt med hjälp av GTK-biblioteket. Kompilatorkoden för att konvertera Blueprint-markering till GTK ui-filer är skriven i Python och distribueras under LGPLv3-licensen.

Anledningen till att projektet skapades är bindningen av gränssnittsbeskrivningsfilerna som används i GTK till XML-formatet, vilket är överbelastat och inte bekvämt för att skriva eller redigera markeringar manuellt. Blueprint-formatet kännetecknas av sin tydliga presentation av information och, tack vare sin läsbara syntax, gör det möjligt att klara sig utan användning av specialiserade visuella gränssnittsredigerare när man skapar, redigerar och utvärderar ändringar i gränssnittselement.

Samtidigt kräver Blueprint inga ändringar av GTK, replikerar helt GTK-widgetmodellen och är placerad som ett tillägg som kompilerar uppmärkning till standard-XML-formatet för GtkBuilder. Funktionaliteten hos Blueprint är helt överensstämmande med GtkBuilder, bara metoden för att presentera information skiljer sig. För att migrera ett projekt till Blueprint, lägg bara till ett blueprint-compiler-anrop till byggskriptet utan att ändra koden. använder Gtk 4.0; mall MyAppWindow : Gtk.ApplicationWindow { title: _("My App Title"); [titlebar] HeaderBar header_bar {} Etikett { styles ["rubrik"] etikett: _("Hej världen!"); } }

Blueprint introducerad - ett nytt språk för att bygga användargränssnitt för GTK

Förutom kompilatorn till standardformatet GTK XML, är också ett plugin med Blueprint-stöd för den integrerade utvecklingsmiljön GNOME Builder under utveckling. En separat LSP-server (Language Server Protocol) utvecklas för Blueprint, som kan användas för markering, felanalys, visning av tips och kodkomplettering i kodredigerare som stöder LSP, inklusive Visual Studio Code.

Blueprint-utvecklingsplaner inkluderar tillägg av reaktiva programmeringselement till markeringen, implementerade med klassen Gtk.Expression som finns i GTK4. Den föreslagna metoden är mer bekant för utvecklare av JavaScript-webbgränssnitt och möjliggör automatisk synkronisering av gränssnittspresentationen med den tillhörande datamodellen, utan att behöva tvinga användargränssnittet att uppdateras efter varje dataändring.

Källa: opennet.ru

Lägg en kommentar