Πρώτα βήματα [Vala + Gtk 3]: Hello World !!

Θα δούμε σε αυτό το μικρό σεμινάριο πώς να κάνουμε τα πρώτα μας βήματα με το Vala και το GTK3. Ας αρχίσουμε:

Εγκατάσταση των απαραίτητων εργαλείων

sudo apt-get install valac libgtk-3-dev

Το IDE:

Μπορούμε να βρούμε μια μεγάλη ποικιλία εκδοτών που μπορούμε να χρησιμοποιήσουμε / διαμορφώσουμε ως IDE. Παραδείγματα αυτών είναι γρατσουνιά, SublimeText, Geany … Στην περίπτωσή μου θα χρησιμοποιήσω το Scratch (που μπορούμε να βρούμε στο στοιχειώδες os).

γρατσουνιά

Ας δούμε το τυπικό παράδειγμα του Hello World !, το οποίο θα ήταν ως εξής:

Λήψη από 2013-10-31 23:33:12

Και ο κώδικας θα μοιάζει με αυτόν:

Λήψη από 2013-10-31 23:34:48

Τώρα ας δούμε τις λεπτομέρειες του κώδικα. Έχουμε μια τάξη που είναι ένα παράθυρο Gtk.

# Αρχικοποιούμε το Gtk με ορίσματα Gtk.init (ref args); # Δημιουργούμε την εφαρμογή. Εφαρμογή εφαρμογής = νέα εφαρμογή (); # Βάζουμε την εφαρμογή στο κέντρο της οθόνης. app.window_position = Gtk.WindowPosition.CENTER; # Κατά το κλείσιμο καταστρέφουμε την εφαρμογή. app.destroy.connect (Gtk.main_quit); # Μετρούμε το app window.set_default_size (100, 50). # Δημιουργούμε ένα κουμπί και συνδέουμε το συμβάν κλικ στο κουμπί και εκτυπώνουμε ένα γεια! var κουμπί = νέο Gtk.Button.with_label ("Say Hello"); button.clicked.connect (() => {print ("Γεια! \ n");}); # Προσθέστε το κουμπί στην εφαρμογή app.add (κουμπί); # Εμφανίζουμε την εφαρμογή App / Window.show_all ();

Κάνοντας κλικ στο κουμπί θα λάβουμε ως έξοδο:

Λήψη από 2013-10-31 23:35:58

Συλλέγουμε και εκτελούμε:

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

Τώρα σας αφήνω μερικούς συνδέσμους ενδιαφέροντος:

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


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   pandev92 dijo

    Το πρόβλημα με το να μην έχετε μια ιδέα που σχεδιάζει τα παράθυρα είναι ότι πρέπει να γνωρίζετε όλες τις μεθόδους της τάξης για να δημιουργήσετε ένα παράθυρο, κάτι πρωτόγονο, πραγματικά.

    1.    αποχρώσεις dijo

      Εάν κάνατε καλή δουλειά στο στάδιο του σχεδιασμού, δεν θα έχετε κανένα λόγο να χρησιμοποιήσετε ένα IDE κατά τον προγραμματισμό.

      1.    pandev92 dijo

        Δεν με καταλάβατε, μιλάω για να έχουμε μια ιδέα που θα το κάνει για εσάς, παράθυρα, χωρίς να χρειάζεται να πληκτρολογήσετε κώδικα κατ 'αρχήν:

        http://imagebin.org/275532

        Αυτό σας σώζει από το να γνωρίζετε ποια είναι η μέθοδος ενός κουμπιού, κ.λπ.

        1.    marianogaudix dijo

          Με ένα IDE εξοικονομείτε μόνο χρόνο …… Αλλά αν μιλάμε για λειτουργικότητα όταν χρησιμοποιείτε ένα IDE ή ένα TERMINAL κατά τη σύνταξη, και οι δύο εκπληρώνουν τις ίδιες λειτουργίες.
          Είναι θέμα γεύσης και άνεσης.

        2.    artus dijo

          Λοιπόν έχετε Glade (https://glade.gnome.org/), είναι ένα εργαλείο RAD που σας επιτρέπει να σχεδιάζετε γρήγορα παράθυρα εφαρμογών με απλά κλικ του ποντικιού.

          Μόλις δημιουργηθεί η διεπαφή, δημιουργεί ένα αρχείο σε μορφή xml το οποίο μπορείτε να καλέσετε από γλώσσες προγραμματισμού όπως C, C ++, Python, Perl, Vala, Java κ.λπ.

          Ελπίζω ότι αυτό απαντά στην ερώτησή σας.

        3.    lolbimbo dijo

          Εάν υπάρχει μια ιδέα που ενσωματώνει έναν δημιουργό παραθύρων, το Anjuta IDE.

  2.   Juan Pablo dijo

    Γεια σας Lolbimbo:
    Πριν από λίγο καιρό αποφάσισα να χρησιμοποιήσω το Vala ως κύρια γλώσσα μου πριν από το D και το Golang για x λόγους, αλλά έχω κολλήσει σε ένα πρόβλημα, τον κώδικα που έχω συντάξει πολύ καλά, αλλά τώρα έχω το ακόλουθο σφάλμα:

    /media/…/vala/nn.vala.c: Στη συνάρτηση «main»:
    /media/…/vala/nn.vala.conym155: προειδοποίηση: "g_type_init" έχει καταργηθεί (δηλώθηκε στη διεύθυνση /usr/include/glib-2/gobject/gtype.h:2.0) [-Wdeprecated-δηλώσεις]
    g_type_init();

    αν είναι πάρα πολύ πρόβλημα θα το καταλάβω, ευχαριστώ εκ των προτέρων και συγχαρητήρια στο blog.

    1.    lolbimbo dijo

      Γεια σας φίλε, ξεκινώ με το vala, αλλά δώστε μου τον κωδικό που έχετε στη γραμμή 155, ούτως ή άλλως είναι μια προειδοποίηση, όχι ένα σφάλμα, εάν λειτουργεί για εσάς, δεν συμβαίνει τίποτα, καθώς μπορεί να είναι ένα σφάλμα.

      1.    Juan Pablo dijo

        Γεια σας Lolimbo, γιορτάζω τον ενθουσιασμό σας από τότε που ένιωσα μόνος στο vala, στην πραγματικότητα το σφάλμα μου δίνει σε οποιονδήποτε κωδικό τόσο απλό όσο: χρησιμοποιώντας το Gtk;

        int main (string [] args) {
        Gtk.init (αναφ. args);

        var window = νέο παράθυρο ();
        window.title = "Πρώτο πρόγραμμα GTK +";
        window.border_width = 10;
        window.window_position = WindowPosition.CENTER;
        window.set_default_size(350, 70);
        window.destroy.connect(Gtk.main_quit);

        var κουμπί = νέο Button.with_label ("Click me!");
        button.clicked.connect (() => {
        button.label = "Ευχαριστώ";
        })?
        δοκιμάστε {
        // Είτε κατευθείαν από ένα αρχείο ...
        window.icon = νέο Gdk.Pixbuf.from_file ("my-app.png");
        //… ή από το θέμα
        window.icon = IconTheme.get_default () .load_icon ("my-app", 48, 0);
        } catch (Σφάλμα e) {
        stderr.printf ("Δεν ήταν δυνατή η φόρτωση του εικονιδίου εφαρμογής:% s \ n", e.message);
        }
        window.add (κουμπί);
        window.show_all();

        Gtk.main();
        0 επιστρέψει?
        }

        Αλλά μεταξύ της εργασίας με τα Windows και στο σπίτι δεν έχω χρόνο για να κυνηγήσω το σφάλμα, μου φαίνεται ότι είναι πρόβλημα με τις εκδόσεις του vala, δεν ξέρω.

        1.    lolbimbo dijo

          Η ενημέρωση του vala πρέπει να καταργήσει την προειδοποίηση.

  3.   ουρητήρια dijo

    Το σεμινάριο εξηγείται καλά και μου αρέσει, μόνο που πάντα αναρωτιόμουν, γιατί πάντα να ξεκινάω με το πρόγραμμα «Γεια σου κόσμος», για αρχάριους θα ήταν μια χαρά, αλλά τι γίνεται με όσους έχουν ήδη εμπειρία προγραμματισμού; Γιατί να μην υποδείξετε πώς να δημιουργήσετε μια διεπαφή με πολλά στοιχεία (κουμπιά, ετικέτες κ.λπ.);

    Μου αρέσει ο Vala και θέλω να το μάθω, αλλά θα ήταν πιο εποικοδομητικό να ξεκινήσουμε λίγο περισσότερο "ενδιάμεσα", έτσι;

    1.    lolbimbo dijo

      Σύντομα θα είναι μια άλλη ανάρτηση με ενδιάμεσο επίπεδο.

  4.   Χουάνρα20 dijo

    Ιάβα?

    Το ωραίο σεμινάριο εξήγησε καλά και όλα με έκαναν πραγματικά να σκεφτώ να βάλω τον vala και το gtk στη λίστα με τα πράγματα που πρέπει να μάθω.

  5.   -ικ- dijo

    Εξαιρετική, τώρα προτείνω ένα σεμινάριο Seed (javascript) + Gtk, θα ήταν πολύ ενδιαφέρον, καθώς αυτή είναι η επίσημη επιλογή που έχει επιλέξει το έργο Gnome.