Primeiros passos [Vala + Gtk 3]: Olá, mundo !!

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).

Scratch

Vamos ver o exemplo típico de Hello World !, Que seria o seguinte:

Captura de 2013/10/31 23:33:12

E o código seria assim:

Captura de 2013/10/31 23:34:48

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:

Captura de 2013/10/31 23:35:58

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


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Pandev92 dito

    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.

    1.    matizado dito

      Se você fez um bom trabalho no estágio de design, não teria motivos para usar um IDE durante a programação.

      1.    Pandev92 dito

        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

        1.    marianogaudice dito

          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.

        2.    Artus dito

          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.

        3.    lolbimbo dito

          Se existe uma ideia que integra um criador de janelas, Anjuta IDE.

  2.   Juan Pablo dito

    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.

    1.    lolbimbo dito

      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.

      1.    Juan Pablo dito

        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.

        1.    lolbimbo dito

          Atualizar vala deve remover o aviso.

  3.   uribe dito

    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?

    1.    lolbimbo dito

      Em breve estão mais um post com nível intermediário.

  4.   juanra20 dito

    Java?

    Bom tutorial bem explicado e tudo realmente me fez considerar colocar vala e gtk na minha lista de coisas a aprender.

  5.   -eu- dito

    Excelente, agora sugiro um tutorial Seed (javascript) + Gtk, seria bem interessante, pois esta é a opção oficial que o projeto Gnome selecionou.