Veremos neste pequeno tutorial como dar os primeiros passos com Vala e GTK3. Vamos começar:
Instalando as ferramentas necessárias
sudo apt-get install valac libgtk-3-dev
O IDE:
Podemos encontrar uma grande variedade de editores que podemos usar / configurar como IDE. Exemplos deles são Scratch, Texto sublime, Geany … No meu caso, vou usar o Scratch (que podemos encontrar no sistema operacional elementar).
Vamos ver o exemplo típico de Hello World !, Que seria o seguinte:
E o código seria assim:
Agora vamos ver os detalhes do código. Temos uma classe que é uma janela Gtk.
# Inicializamos Gtk com os argumentos Gtk.init (ref args); # Nós criamos o aplicativo. Aplicativo aplicativo = novo aplicativo (); # Colocamos o aplicativo no centro da tela. app.window_position = Gtk.WindowPosition.CENTER; # Ao fechar, destruímos o aplicativo. app.destroy.connect (Gtk.main_quit); # Medimos a janela app.set_default_size (100, 50); # Criamos um botão e conectamos o evento de clique do botão e imprimimos um olá! var button = new Gtk.Button.with_label ("Diga Olá"); button.clicked.connect (() => {print ("Olá! \ n");}); # Adicione o botão ao app app.add (botão); # Mostramos o App / Window app.show_all ();
Ao clicar no botão, teremos como resultado:
Compilamos e executamos:
$ valac -v lol.vala --pkg gtk + -3.0 $ ./lol
Agora deixo alguns links de interesse:
http://elementaryos.org/docs/code/the-basic-setup
O problema de não ter uma ide que desenhe janelas é que você deve conhecer todos os métodos da classe para criar uma janela, algo primitivo, na verdade.
Se você fez um bom trabalho no estágio de design, não teria motivos para usar um IDE durante a programação.
Você não me entendeu, estou falando em ter uma ideia que vai fazer isso por você, windows, sem ter que digitar código em princípio:
http://imagebin.org/275532
Isso evita que você saiba qual é o método de um botão, etc etc
Com um IDE você só economiza tempo ... Mas se falarmos sobre funcionalidade ao usar um IDE ou um TERMINAL durante a compilação, ambos cumprem as mesmas funções.
É uma questão de gosto e conforto.
Bem, você tem Glade (https://glade.gnome.org/), é uma ferramenta RAD que permite criar janelas de aplicativos rapidamente com simples cliques do mouse.
Uma vez que a interface é criada, ela gera um arquivo no formato xml que você pode invocar de linguagens de programação como C, C ++, Python, Perl, Vala, Java, etc.
Espero que isso responda a sua pergunta.
Se existe uma ideia que integra um criador de janelas, Anjuta IDE.
Olá Lolbimbo:
Há algum tempo decidi usar Vala como minha linguagem principal antes de D e Golang por x motivos, mas estou preso em um problema, o código que compilei muito bem, mas agora recebo o seguinte erro:
/media/…/vala/nn.vala.c: Na função 'main':
/media/…/vala/nn.vala.c:155:2: aviso: 'g_type_init' está obsoleto (declarado em /usr/include/glib-2.0/gobject/gtype.h:669) [-Wdeprecated-declarations]
g_type_init();
se for muito problemático eu entenderei, desde já agradeço e parabéns pelo blog.
Olá amigo, estou começando com vala, mas passa-me o código que você tem na linha 155, de qualquer forma é um aviso, não um erro, se funcionar para você, nada acontece pois pode ser um bug de vala.
Olá Lolimbo, celebro seu entusiasmo já que me senti só em vala, na verdade o erro me dá em qualquer código tão simples como: usar Gtk;
int main (string [] args) {
Gtk.init(ref args);
janela var = nova janela ();
window.title = "Primeiro Programa GTK +";
janela.border_width = 10;
window.window_position = WindowPosition.CENTER;
window.set_default_size(350, 70);
window.destroy.connect(Gtk.main_quit);
var button = new Button.with_label ("Clique aqui!");
button.clicked.connect (() => {
button.label = "Obrigado";
});
experimentar {
// Tanto diretamente de um arquivo ...
window.icon = new Gdk.Pixbuf.from_file ("my-app.png");
//… ou do tema
window.icon = IconTheme.get_default () .load_icon ("meu-app", 48, 0);
} catch (Erro e) {
stderr.printf ("Não foi possível carregar o ícone do aplicativo:% s \ n", e.message);
}
window.add (botão);
janela.show_all();
Gtk.main();
0 voltar;
}
Mas entre trabalhar com Windows e em casa não me dou tempo para caçar o erro, parece-me que é um problema com as versões do vala, não sei.
Atualizar vala deve remover o aviso.
O tutorial é bem explicado e eu gosto dele, só que sempre me perguntei, por que sempre começar com o programa "hello world", para iniciantes seria ótimo, mas e quem já tem experiência em programação? Por que não indicar como fazer uma interface com vários elementos (botões, rótulos, etc)?
Gosto do Vala e quero aprender, mas seria mais construtivo começar um pouco mais "no meio", certo?
Em breve estão mais um post com nível intermediário.
Java?
Bom tutorial bem explicado e tudo realmente me fez considerar colocar vala e gtk na minha lista de coisas a aprender.
Excelente, agora sugiro um tutorial Seed (javascript) + Gtk, seria bem interessante, pois esta é a opção oficial que o projeto Gnome selecionou.