Tutvustas GTK uut kasutajaliidese keelt Blueprint

James Westman, GNOME Mapsi rakenduse arendaja, tutvustas uut märgistuskeelt Blueprint, mis on mõeldud liideste loomiseks GTK teegi abil. Blueprinti märgistuse GTK kasutajaliidese failideks teisendamiseks mõeldud kompilaatori kood on kirjutatud Pythonis ja levitatakse LGPLv3 litsentsi all.

Projekti loomise põhjuseks on GTK-s kasutatavate kasutajaliidese kirjeldusfailide sidumine XML-vorminguga, mis on ülekoormatud ja pole mugav märgistuse käsitsi kirjutamiseks või redigeerimiseks. Blueprinti vormingut iseloomustab teabe selge esitus ja tänu loetavale süntaksile saab liidese elementide loomisel, redigeerimisel ja muudatuste hindamisel hakkama ilma spetsiaalsete visuaalse liidese redaktorite kasutamiseta.

Samal ajal ei nõua Blueprint GTK muutmist, kordab täielikult GTK vidina mudelit ja paikneb lisandmoodulina, mis kompileerib märgistuse GtkBuilderi standardsesse XML-vormingusse. Blueprinti funktsionaalsus on täielikult kooskõlas GtkBuilderiga, erineb ainult teabe esitamise meetod. Projekti Blueprinti üleviimiseks lisage lihtsalt ehitusskriptile kavandi kompilaatori kutse ilma koodi muutmata. kasutades Gtk 4.0; mall MyAppWindow : Gtk.ApplicationWindow { pealkiri: _("Minu rakenduse pealkiri"); [titlebar] HeaderBar header_bar {} Label { styles ["pealkiri"] label: _("Tere, maailm!"); } }

Kasutusele võetud Blueprint – uus keel GTK kasutajaliideste loomiseks

Lisaks standardsesse GTK XML-vormingusse kompilaatorile on arendamisel ka Blueprinti toega plugin GNOME Builderi integreeritud arenduskeskkonnale. Blueprinti jaoks on arendamisel eraldi LSP-server (Language Server Protocol), mida saab kasutada esiletõstmiseks, vigade analüüsimiseks, vihjete kuvamiseks ja koodi lõpetamiseks LSP-d toetavates koodiredaktorites, sealhulgas Visual Studio Code.

Blueprinti arendusplaanid hõlmavad reaktiivsete programmeerimiselementide lisamist märgistusele, mida rakendatakse GTK4-s pakutava klassi Gtk.Expression abil. Väljapakutud meetod on JavaScripti veebiliideste arendajatele tuttavam ja võimaldab liidese esitluse automaatset sünkroonimist seotud andmemudeliga, ilma et oleks vaja pärast iga andmemuutust kasutajaliidest jõuliselt uuendada.

Allikas: opennet.ru

Lisa kommentaar