Introduserte Blueprint, et nytt brukergrensesnittspråk for GTK

James Westman, utvikler av GNOME Maps-applikasjonen, introduserte et nytt markup-språk, Blueprint, designet for å bygge grensesnitt ved å bruke GTK-biblioteket. Kompilatorkoden for å konvertere Blueprint-markering til GTK UI-filer er skrevet i Python og distribuert under LGPLv3-lisensen.

Grunnen til å opprette prosjektet er bindingen av UI-grensesnittbeskrivelsesfilene som brukes i GTK til XML-formatet, som er overbelastet og ikke praktisk for å skrive eller redigere markeringer manuelt. Blueprint-formatet utmerker seg ved sin klare presentasjon av informasjon og, takket være den lesbare syntaksen, gjør det mulig å klare seg uten bruk av spesialiserte visuelle grensesnittredigerere når man oppretter, redigerer og evaluerer endringer i grensesnittelementer.

Samtidig krever Blueprint ikke endringer i GTK, replikerer fullstendig GTK-widgetmodellen og er posisjonert som et tillegg som kompilerer markering til standard XML-formatet for GtkBuilder. Funksjonaliteten til Blueprint er helt konsistent med GtkBuilder, bare metoden for å presentere informasjon er forskjellig. For å migrere et prosjekt til Blueprint, legg til et blueprint-compiler-kall til byggeskriptet uten å endre koden. bruker Gtk 4.0; mal MyAppWindow : Gtk.ApplicationWindow { title: _("Min apptittel"); [tittellinje] HeaderBar header_bar {} Etikett { styles ["heading"] label: _("Hei, verden!"); } }

Blueprint introdusert - et nytt språk for å bygge brukergrensesnitt for GTK

I tillegg til kompilatoren til standard GTK XML-format, er også en plugin med Blueprint-støtte for det integrerte utviklingsmiljøet GNOME Builder under utvikling. En egen LSP-server (Language Server Protocol) utvikles for Blueprint, som kan brukes til utheving, feilanalyse, visning av hint og kodefullføring i koderedigerere som støtter LSP, inkludert Visual Studio Code.

Blueprint-utviklingsplaner inkluderer tillegg av reaktive programmeringselementer til markeringen, implementert ved hjelp av Gtk.Expression-klassen gitt i GTK4. Den foreslåtte metoden er mer kjent for utviklere av JavaScript-nettgrensesnitt og tillater automatisk synkronisering av grensesnittpresentasjonen med den tilhørende datamodellen, uten behov for å oppdatere brukergrensesnittet med kraft etter hver dataendring.

Kilde: opennet.ru

Legg til en kommentar