Π ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π°ΡΠ° ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° GNOME ΡΡΠ΅Π΄Π° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (GNOME SDK) Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ blueprint-compiler, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ°ΡΠ° Blueprint Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ°. ΠΠΎΠ΄ΠΊΡΠ΅ΠΏΠ°ΡΠ° Π·Π° Blueprint Π² GNOME SDK ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠ·ΠΈ Π΅Π·ΠΈΠΊ Π·Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° GNOME Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡ ΠΎΡ ΡΡΡΠ½ΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Blueprint Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Π² Π½ΠΎΡΠ½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° GNOME SDK ΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ ΡΠ°ΡΡ ΠΎΡ ΡΠ΅Π»ΠΈΠ·ΠΈΡΠ΅, Π·Π°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ Ρ Π΅ΡΠ΅Π½Π½ΠΈΡ ΡΠ΅Π»ΠΈΠ· Π½Π° GNOME 49.
Blueprint ΡΠ»Π΅ΡΠ½ΡΠ²Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° GTK4 ΠΈ ΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΠΈΡΠ° Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΡ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π΅Π½ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΠΏΠΎΠ΄ΡΠ°ΠΆΠ°Π²Π°Ρ Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° Π½Π° widget-ΠΈ Π½Π° GTK, ΠΊΠ°ΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠΈΠΏΠΈΡΠ½ΠΈ ΡΠ°Π±Π»ΠΎΠ½ΠΈ, ΡΠΈΠΏΠΎΠ²Π΅ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ. ΠΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ ΡΠΎΡΠΌΠ°ΡΠ° ui ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° GTK, Π² Blueprint Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° XML ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ Π²ΡΠ·ΠΏΡΠΈΠ΅ΠΌΠ° ΠΊΠ°ΡΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ΅Π½Π° ΠΈ Π½Π΅ΡΠ΄ΠΎΠ±Π½Π° Π·Π° ΡΡΡΠ½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅.
ΠΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½ΠΈ ΡΡΠ΅Π΄ΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΈ Π½Π° ΠΊΠΎΠ΄ Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ LSP ΡΡΡΠ²ΡΡ (Language Server Protocol), ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠ°, Π°Π½Π°Π»ΠΈΠ· Π½Π° Π³ΡΠ΅ΡΠΊΠΈ, ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄ΠΎΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π°. ΠΠΎΠ΄ΠΊΡΠ΅ΠΏΠ°ΡΠ° Π·Π° Blueprint Π²Π΅ΡΠ΅ Π΅ Π²Π³ΡΠ°Π΄Π΅Π½Π° Π² GNOME Builder ΠΈ Π΅ Π½Π°Π»ΠΈΡΠ½Π° ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈ Π·Π° Vim, GNU Emacs ΠΈ Visual Studio Code. ΠΠΌΠ° ΠΈ ΡΡΠΈΠ»ΠΈΡΠ°, ΠΊΠΎΡΡΠΎ ΠΎΠΏΡΠΎΡΡΡΠ²Π° ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΡ XML Π² Blueprint.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΡΠ»ΠΈΠ²ΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠΎΡΠΌΠ°ΡΡΡ Blueprint ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π²ΠΈΠ·ΡΠ°Π»Π½ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΈ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Blueprint Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² GTK ΠΈ Π΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠ°Π½ ΠΊΠ°ΡΠΎ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠ°, ΠΊΠΎΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ°ΡΠ° Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡ ΡΠΎΡΠΌΠ°Ρ XML Π·Π° GtkBuilder. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° Blueprint Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΎΡΠ³ΠΎΠ²ΠΎΡΡΡ Π½Π° ΡΠ΅Π·ΠΈ Π½Π° GtkBuilder, ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° Π΅ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎ Π² ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ°. ΠΠΎΠ΄ΡΡ Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Python ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· LGPLv3. using Gtk 4.0; template $MyAppWindow: ApplicationWindow { default-width: 600; default-height: 300; title: _(Β«Hello, Blueprint!Β»); [titlebar] HeaderBar {} Label { label: bind template.main_text; } }
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
