Introducerede Blueprint, et nyt brugergrænsefladesprog til GTK

James Westman, udvikler af GNOME Maps-applikationen, introducerede et nyt markup-sprog, Blueprint, designet til at bygge grænseflader ved hjælp af GTK-biblioteket. Compilerkoden til at konvertere Blueprint-markering til GTK UI-filer er skrevet i Python og distribueret under LGPLv3-licensen.

Årsagen til at oprette projektet er bindingen af ​​UI-grænsefladebeskrivelsesfilerne brugt i GTK til XML-formatet, som er overbelastet og ikke praktisk til at skrive eller redigere opmærkning manuelt. Blueprint-formatet udmærker sig ved dets klare præsentation af information og gør det, takket være dets læsbare syntaks, muligt at undvære brugen af ​​specialiserede visuelle interface-editorer ved oprettelse, redigering og evaluering af ændringer i interface-elementer.

Samtidig kræver Blueprint ikke ændringer til GTK, replikerer fuldstændigt GTK-widgetmodellen og er placeret som en tilføjelse, der kompilerer markup i standard XML-formatet til GtkBuilder. Funktionaliteten af ​​Blueprint er fuldstændig i overensstemmelse med GtkBuilder, kun metoden til at præsentere information er forskellig. For at migrere et projekt til Blueprint skal du blot tilføje et blueprint-compiler-kald til build-scriptet uden at ændre koden. bruger Gtk 4.0; skabelon MyAppWindow : Gtk.ApplicationWindow { title: _("My App Title"); [titlebar] HeaderBar header_bar {} Etiket { styles ["heading"] label: _("Hej, verden!"); } }

Blueprint introduceret - et nyt sprog til opbygning af brugergrænseflader til GTK

Ud over compileren til standard GTK XML-formatet er et plugin med Blueprint-understøttelse til det integrerede udviklingsmiljø GNOME Builder også under udvikling. En separat LSP-server (Language Server Protocol) udvikles til Blueprint, som kan bruges til fremhævning, fejlanalyse, visning af tip og kodefuldførelse i kodeeditorer, der understøtter LSP, herunder Visual Studio Code.

Blueprint-udviklingsplaner inkluderer tilføjelse af reaktive programmeringselementer til opmærkningen, implementeret ved hjælp af Gtk.Expression-klassen, der leveres i GTK4. Den foreslåede metode er mere velkendt for udviklere af JavaScript-webgrænseflader og giver mulighed for automatisk synkronisering af grænsefladepræsentationen med den tilknyttede datamodel, uden at det er nødvendigt at kraftigt opdatere brugergrænsefladen efter hver dataændring.

Kilde: opennet.ru

Tilføj en kommentar