Primi passi [Vala + Gtk 3]: Hello World !!

In questo piccolo tutorial vedremo come muovere i primi passi con Vala e GTK3. Iniziamo:

Installazione degli strumenti necessari

sudo apt-get install valac libgtk-3-dev

L'IDE:

Possiamo trovare una grande varietà di editor che possiamo usare / configurare come IDE. Un esempio di loro sono Scratch, SublimeTesto, Geany ... Nel mio caso userò Scratch (che possiamo trovare in elementary os).

Scratch

Vediamo il tipico esempio di Hello World !, che sarebbe il seguente:

Cattura da 2013-10-31 23:33:12

E il codice sarebbe simile a questo:

Cattura da 2013-10-31 23:34:48

Vediamo ora i dettagli del codice. Abbiamo una classe che è una finestra Gtk.

# Inizializziamo Gtk con gli argomenti Gtk.init (ref args); # Creiamo l'applicazione. App dell'applicazione = nuova applicazione (); # Mettiamo l'applicazione al centro dello schermo. app.window_position = Gtk.WindowPosition.CENTER; # Alla chiusura distruggiamo l'app. app.destroy.connect (Gtk.main_quit); # Misuriamo la finestra app.set_default_size (100, 50); # Creiamo un pulsante e colleghiamo l'evento clic del pulsante e stampiamo un ciao! var button = new Gtk.Button.with_label ("Say Hello"); button.clicked.connect (() => {print ("Hello! \ n");}); # Aggiungi il pulsante all'app app.add (pulsante); # Mostriamo l'app / finestra app.show_all ();

Cliccando sul pulsante otterremo come output:

Cattura da 2013-10-31 23:35:58

Compiliamo ed eseguiamo:

$ valac -v lol.vala --pkg gtk + -3.0 $ ./lol

Ora vi lascio alcuni link di interesse:

http://elementaryos.org/docs/code/the-basic-setup


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   pandev92 suddetto

    Il problema di non avere un ide che disegna finestre è che devi conoscere tutti i metodi della classe per creare una finestra, qualcosa di primitivo, davvero.

    1.    sfumato suddetto

      Se hai fatto un buon lavoro in fase di progettazione, non avresti motivo di utilizzare un IDE durante la programmazione.

      1.    pandev92 suddetto

        Non mi hai capito, sto parlando di avere un'idea che lo farà per te, windows, senza dover digitare il codice in linea di principio:

        http://imagebin.org/275532

        Ciò ti evita di sapere qual è il metodo di un pulsante, ecc. Ecc

        1.    marianogaudix suddetto

          Con un IDE risparmi solo tempo …… Ma se parliamo di funzionalità quando si utilizza un IDE o un TERMINALE durante la compilazione, entrambi svolgono le stesse funzioni.
          È una questione di gusto e comfort.

        2.    Artus suddetto

          Bene, hai Glade (https://glade.gnome.org/), è uno strumento RAD che consente di progettare rapidamente le finestre delle applicazioni con semplici clic del mouse.

          Una volta creata l'interfaccia, genera un file in formato xml che puoi richiamare da linguaggi di programmazione come C, C ++, Python, Perl, Vala, Java, ecc.

          Spero che questo risponda alla tua domanda.

        3.    lolbimbo suddetto

          Se c'è un'idea che integra un creatore di finestre, Anjuta IDE.

  2.   Juan Pablo suddetto

    Ciao Lolbimbo:
    Qualche tempo fa ho deciso di usare Vala come lingua principale prima di D e Golang per x motivi, ma sono bloccato in un problema, il codice l'ho compilato molto bene, ma ora ricevo il seguente errore:

    /media/…/vala/nn.vala.c: In funzione 'main':
    /media/…/vala/nn.vala.c:155:2: warning: "g_type_init" è deprecato (dichiarato in /usr/include/glib-2.0/gobject/gtype.h:669) [-Wdeprecated-statements]
    g_type_init();

    se è troppo disturbo capirò, grazie in anticipo e complimenti per il blog.

    1.    lolbimbo suddetto

      Ciao amico, comincio con vala, ma passami il codice che hai sulla riga 155, comunque è un avvertimento, non un errore, se per te funziona non succede niente perché potrebbe essere un bug di vala.

      1.    Juan Pablo suddetto

        Ciao Lolimbo, celebro il tuo entusiasmo da quando mi sono sentito solo in vala, effettivamente l'errore mi viene dato in qualsiasi codice semplice come: usare Gtk;

        int main (string [] args) {
        Gtk.init (rif args);

        var finestra = nuova finestra ();
        window.title = "Primo programma GTK +";
        finestra.larghezza_bordo = 10;
        window.window_position = WindowPosition.CENTER;
        window.set_default_size(350, 70);
        window.destroy.connect(Gtk.main_quit);

        var button = new Button.with_label ("Cliccami!");
        button.clicked.connect (() => {
        button.label = "Grazie";
        });
        provare {
        // O direttamente da un file ...
        window.icon = new Gdk.Pixbuf.from_file ("my-app.png");
        // ... o dal tema
        window.icon = IconTheme.get_default () .load_icon ("my-app", 48, 0);
        } cattura (errore e) {
        stderr.printf ("Impossibile caricare l'icona dell'applicazione:% s \ n", e.message);
        }
        window.add (pulsante);
        finestra.mostra_tutto ();

        Gtk.main();
        0 ritorno;
        }

        Ma tra lavorare con Windows e in casa, non ho tempo per scovare l'errore, mi sembra che sia un problema con le versioni di vala, non lo so.

        1.    lolbimbo suddetto

          L'aggiornamento di vala dovrebbe rimuovere l'avviso.

  3.   uribi suddetto

    Il tutorial è ben spiegato e mi piace, solo che mi sono sempre chiesto, perché iniziare sempre con il programma "ciao mondo", per i principianti andrebbe bene, ma che dire di chi ha già esperienza di programmazione? Perché non indicare come realizzare un'interfaccia con più elementi (pulsanti, etichette, ecc.)?

    Mi piace Vala e voglio impararlo, ma sarebbe più costruttivo iniziare un po 'di più "in mezzo", giusto?

    1.    lolbimbo suddetto

      Presto ci sono un altro post con un livello intermedio.

  4.   juanra20 suddetto

    Giava?

    Bel tutorial ben spiegato e tutto in realtà mi ha fatto pensare di mettere vala e gtk nella mia lista di cose da imparare.

  5.   -ik- suddetto

    Ottimo, ora suggerisco un tutorial Seed (javascript) + Gtk, sarebbe piuttosto interessante, in quanto questa è l'opzione ufficiale selezionata dal progetto Gnome.