GTK үчүн жаңы колдонуучу интерфейс тили Blueprint киргизилди

Джеймс Вестман, GNOME Карталар тиркемесин иштеп чыгуучу, GTK китепканасын колдонуу менен интерфейстерди куруу үчүн иштелип чыккан жаңы белгилөө тилин, Blueprint киргизди. Blueprint белгилөө GTK UI файлдарына айландыруу үчүн компилятор коду Python тилинде жазылган жана LGPLv3 лицензиясынын астында таратылган.

Долбоорду түзүүнүн себеби - GTKда колдонулган UI интерфейсинин сүрөттөмө файлдарын XML форматына байлоо, ал ашыкча жүктөлгөн жана белгини кол менен жазуу же түзөтүү үчүн ыңгайлуу эмес. Blueprint форматы маалыматтын так берилиши менен айырмаланат жана анын окула турган синтаксисинин аркасында интерфейс элементтериндеги өзгөрүүлөрдү түзүүдө, редакциялоодо жана баалоодо адистештирилген визуалдык интерфейс редакторлорун колдонбостон жасоого мүмкүндүк берет.

Ошол эле учурда, Blueprint GTKге өзгөртүүлөрдү талап кылбайт, GTK виджетинин моделин толугу менен кайталайт жана GtkBuilder үчүн стандарттык XML форматына белгилөөчү кошумча катары жайгаштырылган. Blueprint функционалдуулугу GtkBuilder менен толук шайкеш келет, маалыматты берүү ыкмасы гана айырмаланат. Долбоорду Blueprint'ке көчүрүү үчүн, кодду өзгөртпөстөн куруу скриптине план-компилятордун чалуусун кошуңуз. Gtk 4.0 колдонуу; шаблон MyAppWindow : Gtk.ApplicationWindow { аталышы: _("Менин колдонмомдун аталышы"); [titlebar] HeaderBar header_bar {} Label { styles ["heading"] энбелгиси: _("Салам, дүйнө!"); } }

Blueprint киргизилди - GTK үчүн колдонуучу интерфейстерин куруу үчүн жаңы тил

Стандарттык GTK XML форматындагы компилятордон тышкары, GNOME Builder интеграцияланган иштеп чыгуу чөйрөсү үчүн Blueprint колдоосу менен плагин дагы иштелип чыгууда. Blueprint үчүн өзүнчө LSP сервери (Language Server Protocol) иштелип чыгууда, аны LSP, анын ичинде Visual Studio Code колдогон код редакторлорунда бөлүп көрсөтүү, каталарды талдоо, ишараттарды көрсөтүү жана кодду толтуруу үчүн колдонсо болот.

Планды иштеп чыгуу пландары GTK4те берилген Gtk.Expression классын колдонуу менен ишке ашырылган белгилөөгө реактивдүү программалоо элементтерин кошууну камтыйт. Сунушталган ыкма JavaScript веб-интерфейстерин иштеп чыгуучуларга көбүрөөк тааныш жана ар бир маалымат өзгөргөндөн кийин колдонуучунун интерфейсин күчтөп жаңыртуунун зарылдыгы жок, интерфейстин презентациясын байланышкан маалыматтар модели менен автоматтык түрдө синхрондоштурууга мүмкүндүк берет.

Source: opennet.ru

Комментарий кошуу