Extra 2
Caso seja desejado, é possível gerar executáveis instalando Vala.
Ei, mas a sintaxe de Vala é parecida com C# e não tem relação com o artigo.
Bem, o compilador também permite compilar arquivos na linguagem Genie onde, agora sim, a sintaxe é parecida com Python. Infelizmente a documentação é praticamente inexistente e eles não se importam. Um pouco de informação em espanhol pode ser encontrada em Genie doc.
Tanto Vala como Genie geram um programa em C que depois é compilados e gera um executável. Para coisas simples, basta verificar quais as bibliotecas (.dll) são necessários e copiar para a mesma pasta do executável gerado. Para coisas complexas, a distribuição também é mais complexa (teria que ver como é feita com o GIMP.
// compilar com: valac --pkg gtk+-3.0 arquivo.gs
[indent=4]
uses Gtk
init
new MyApplication( "tabnews.my.genie.application",
ApplicationFlags.FLAGS_NONE
).run( args )
class MyApplication:Gtk.Application
lb_message: Gtk.Label
cont: int = 0
construct( application_id:string, flags:ApplicationFlags )
if !id_is_valid( application_id )
error( "application id %s is not valid", application_id )
this.application_id = application_id
this.flags = flags
def override activate ()
var window = new Gtk.ApplicationWindow( this )
headerbar : Gtk.HeaderBar = new Gtk.HeaderBar()
headerbar.show_close_button = true
headerbar.set_title("GTK + Vala")
headerbar.set_subtitle ("Utilizando Genie e headerbar")
window.set_titlebar(headerbar)
window.set_default_size (600, 300)
bt_clickme : Gtk.Button = new Gtk.Button.with_label ("Clique-me")
bt_clickme.clicked.connect(hello)
headerbar.pack_start(bt_clickme)
lb_message = new Gtk.Label ("")
window.add (lb_message)
window.show_all()
def hello(btn:Button)
cont++
lb_message.label= "Número de cliques: " + cont.to_string()
print("Hello World!")
Espero não ter tumultuado muito o artigo, mas o resultado do programa acima seria algo assim: