Einführung von Blueprint, einer neuen Benutzeroberflächensprache für GTK

James Westman, Entwickler der GNOME Maps-Anwendung, stellte eine neue Auszeichnungssprache namens Blueprint vor, die für die Erstellung von Schnittstellen mithilfe der GTK-Bibliothek entwickelt wurde. Der Compiler-Code zum Konvertieren von Blueprint-Markup in GTK-UI-Dateien ist in Python geschrieben und wird unter der LGPLv3-Lizenz vertrieben.

Der Grund für die Erstellung des Projekts ist die Bindung der in GTK verwendeten UI-Schnittstellenbeschreibungsdateien an das XML-Format, das überlastet ist und sich nicht zum manuellen Schreiben oder Bearbeiten von Markups eignet. Das Blueprint-Format zeichnet sich durch eine übersichtliche Informationsdarstellung aus und ermöglicht dank seiner lesbaren Syntax den Verzicht auf den Einsatz spezialisierter visueller Schnittstelleneditoren bei der Erstellung, Bearbeitung und Auswertung von Änderungen in Schnittstellenelementen.

Gleichzeitig erfordert Blueprint keine Änderungen an GTK, repliziert das GTK-Widget-Modell vollständig und ist als Add-on positioniert, das Markup in das Standard-XML-Format für GtkBuilder kompiliert. Die Funktionalität von Blueprint stimmt vollständig mit GtkBuilder überein, nur die Art der Informationsdarstellung unterscheidet sich. Um ein Projekt zu Blueprint zu migrieren, fügen Sie einfach einen Blueprint-Compiler-Aufruf zum Build-Skript hinzu, ohne den Code zu ändern. mit GTK 4.0; template MyAppWindow: Gtk.ApplicationWindow { title: _("My App Title"); [titlebar] HeaderBar header_bar {} Label { Styles ["heading"] label: _("Hallo Welt!"); } }

Blueprint eingeführt – eine neue Sprache zum Erstellen von Benutzeroberflächen für GTK

Neben dem Compiler in das Standard-GTK-XML-Format befindet sich auch ein Plugin mit Blueprint-Unterstützung für die integrierte Entwicklungsumgebung GNOME Builder in der Entwicklung. Für Blueprint wird ein separater LSP-Server (Language Server Protocol) entwickelt, der zur Hervorhebung, Fehleranalyse, Anzeige von Hinweisen und Code-Vervollständigung in Code-Editoren verwendet werden kann, die LSP unterstützen, einschließlich Visual Studio Code.

Zu den Blueprint-Entwicklungsplänen gehört das Hinzufügen reaktiver Programmierelemente zum Markup, die mithilfe der in GTK4 bereitgestellten Gtk.Expression-Klasse implementiert werden. Die vorgeschlagene Methode ist Entwicklern von JavaScript-Webschnittstellen vertrauter und ermöglicht eine automatische Synchronisierung der Schnittstellenpräsentation mit dem zugehörigen Datenmodell, ohne dass die Benutzeroberfläche nach jeder Datenänderung zwangsweise aktualisiert werden muss.

Source: opennet.ru

Kommentar hinzufügen