Introdotto Blueprint, un nuovo linguaggio di interfaccia utente per GTK

James Westman, sviluppatore dell'applicazione GNOME Maps, ha introdotto un nuovo linguaggio di markup, Blueprint, progettato per creare interfacce utilizzando la libreria GTK. Il codice del compilatore per convertire il markup Blueprint in file UI GTK è scritto in Python e distribuito sotto la licenza LGPLv3.

Il motivo della creazione del progetto è l'associazione dei file di descrizione dell'interfaccia UI utilizzati in GTK al formato XML, che è sovraccarico e non conveniente per scrivere o modificare manualmente il markup. Il formato Blueprint si distingue per la chiara presentazione delle informazioni e, grazie alla sua sintassi leggibile, consente di fare a meno dell'uso di editor specializzati dell'interfaccia visiva durante la creazione, la modifica e la valutazione delle modifiche agli elementi dell'interfaccia.

Allo stesso tempo, Blueprint non richiede modifiche a GTK, replica completamente il modello widget GTK e si posiziona come un componente aggiuntivo che compila markup nel formato XML standard per GtkBuilder. La funzionalità di Blueprint è pienamente coerente con GtkBuilder, differisce solo il metodo di presentazione delle informazioni. Per migrare un progetto su Blueprint, basta aggiungere una chiamata del compilatore blueprint allo script di build senza modificare il codice. utilizzando Gtk 4.0; template MyAppWindow : Gtk.ApplicationWindow { title: _("Titolo della mia app"); [barra del titolo] HeaderBar header_bar {} Etichetta { stili ["intestazione"] etichetta: _("Ciao mondo!"); } }

Introdotto il progetto: un nuovo linguaggio per la creazione di interfacce utente per GTK

Oltre al compilatore nel formato GTK XML standard, è in fase di sviluppo anche un plugin con supporto Blueprint per l'ambiente di sviluppo integrato GNOME Builder. Per Blueprint è in fase di sviluppo un server LSP (Language Server Protocol) separato, che può essere utilizzato per l'evidenziazione, l'analisi degli errori, la visualizzazione di suggerimenti e il completamento del codice negli editor di codice che supportano LSP, incluso Visual Studio Code.

I piani di sviluppo del progetto includono l'aggiunta di elementi di programmazione reattivi al markup, implementati utilizzando la classe Gtk.Expression fornita in GTK4. Il metodo proposto è più familiare agli sviluppatori di interfacce web JavaScript e consente la sincronizzazione automatica della presentazione dell'interfaccia con il modello dati associato, senza la necessità di aggiornare forzatamente l'interfaccia utente dopo ogni modifica dei dati.

Fonte: opennet.ru

Aggiungi un commento