Các bước đầu tiên [Vala + Gtk 3]: Hello World !!

Chúng ta sẽ xem trong hướng dẫn nhỏ này về cách thực hiện các bước đầu tiên với Vala và GTK3. Bắt đầu nào:

Cài đặt các công cụ cần thiết

sudo apt-get install valac libgtk-3-dev

IDE:

Chúng tôi có thể tìm thấy rất nhiều trình chỉnh sửa mà chúng tôi có thể sử dụng / định cấu hình làm IDE. Ví dụ về họ là Scratch, Cao siêu, Geany … Trong trường hợp của tôi, tôi sẽ sử dụng Scratch (mà chúng ta có thể tìm thấy trong hệ điều hành sơ cấp).

Scratch

Hãy xem ví dụ điển hình của Hello World !, sẽ như sau:

Chụp từ 2013-10-31 23:33:12

Và mã sẽ như thế này:

Chụp từ 2013-10-31 23:34:48

Bây giờ chúng ta hãy xem chi tiết của mã. Chúng ta có một lớp là cửa sổ Gtk.

# Chúng tôi khởi tạo Gtk với các đối số Gtk.init (ref args); # Chúng tôi tạo ứng dụng. Ứng dụng ứng dụng = Ứng dụng mới (); # Chúng tôi đặt ứng dụng ở giữa màn hình. app.window_position = Gtk.WindowPosition.CENTER; # Khi đóng, chúng tôi phá hủy ứng dụng. app.destroy.connect (Gtk.main_quit); # Chúng tôi đo kích thước cửa sổ app.set_default_size (100, 50); # Chúng tôi tạo một nút và kết nối sự kiện nhấp vào nút và in lời chào! var button = new Gtk.Button.with_label ("Nói Xin chào"); button.clicked.connect (() => {print ("Xin chào! \ n");}); # Thêm nút vào ứng dụng app.add (nút); # Chúng tôi hiển thị ứng dụng App / Window app.show_all ();

Bằng cách nhấp vào nút, chúng tôi sẽ nhận được đầu ra:

Chụp từ 2013-10-31 23:35:58

Chúng tôi biên dịch và thực thi:

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

Bây giờ tôi để lại cho bạn một số liên kết quan tâm:

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


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   pandev92 dijo

    Vấn đề với việc không có một Ide để vẽ các cửa sổ là bạn phải biết tất cả các phương thức của lớp để tạo một cửa sổ, một cái gì đó nguyên thủy, thực sự.

    1.    sắc thái dijo

      Nếu bạn đã làm tốt trong giai đoạn thiết kế, bạn sẽ không có lý do gì để sử dụng IDE khi lập trình.

      1.    pandev92 dijo

        Bạn không hiểu tôi, tôi đang nói về việc có một ý tưởng sẽ làm điều đó cho bạn, windows, mà không cần phải nhập mã về nguyên tắc:

        http://imagebin.org/275532

        Điều đó giúp bạn không biết phương thức của một nút là gì, v.v.

        1.    marianogaudix dijo

          Với IDE bạn chỉ tiết kiệm thời gian …… Nhưng nếu chúng ta nói về chức năng khi sử dụng IDE hoặc TERMINAL khi biên dịch, cả hai đều đáp ứng các chức năng giống nhau.
          Đó là một vấn đề của hương vị và sự thoải mái.

        2.    nghệ thuật dijo

          Vâng, bạn có Glade (https://glade.gnome.org/), là một công cụ RAD cho phép bạn thiết kế nhanh các cửa sổ ứng dụng chỉ bằng những cú click chuột đơn giản.

          Khi giao diện được tạo, nó tạo ra một tệp ở định dạng xml mà bạn có thể gọi từ các ngôn ngữ lập trình như C, C ++, Python, Perl, Vala, Java, v.v.

          Tôi mong bạn trả lời câu hỏi này.

        3.    lolbimbo dijo

          Nếu có ý tưởng tích hợp trình tạo cửa sổ, Anjuta IDE.

  2.   Juan Pablo dijo

    Xin chào Lolbimbo:
    Một thời gian trước, tôi đã quyết định sử dụng Vala làm ngôn ngữ chính của mình trước D và Golang vì lý do x, nhưng tôi gặp sự cố, đoạn mã mà tôi đã biên dịch rất tốt, nhưng bây giờ tôi gặp lỗi sau:

    /media/…/vala/nn.vala.c: Trong hàm 'main':
    /media/…/vala/nn.vala.c:155:2: warning: 'g_type_init' không được dùng nữa (được khai báo tại /usr/include/glib-2.0/gobject/gtype.h:669) [-Wdeprecated-tuyên bố]
    g_type_init();

    nếu nó quá rắc rối, tôi sẽ hiểu, cảm ơn trước và chúc mừng blog.

    1.    lolbimbo dijo

      Xin chào bạn, tôi đang bắt đầu với vala, nhưng hãy chuyển cho tôi mã mà bạn có ở dòng 155, dù sao nó cũng là cảnh báo chứ không phải lỗi, nếu nó phù hợp với bạn thì không có gì xảy ra vì nó có thể là lỗi vala.

      1.    Juan Pablo dijo

        Xin chào Lolimbo, tôi rất hoan nghênh sự nhiệt tình của bạn kể từ khi tôi cảm thấy cô đơn trong vala, thực tế là lỗi xảy ra với tôi trong bất kỳ mã nào đơn giản như: using Gtk;

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

        var window = newWindow ();
        window.title = "Chương trình GTK + đầu tiên";
        window.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 ("Nhấp vào tôi!");
        button.clicked.connect (() => {
        button.label = "Cảm ơn";
        });
        thử {
        // Trực tiếp từ tệp ...
        window.icon = new Gdk.Pixbuf.from_file ("my-app.png");
        //… hoặc từ chủ đề
        window.icon = IconTheme.get_default () .load_icon ("ứng dụng của tôi", 48, 0);
        } catch (Lỗi e) {
        stderr.printf ("Không thể tải biểu tượng ứng dụng:% s \ n", e.message);
        }
        window.add (nút);
        window.show_all();

        gtk.main();
        0 trở về;
        }

        Nhưng giữa việc làm việc với Windows và ở nhà, tôi không có thời gian để tìm ra lỗi, tôi không biết đó là vấn đề với các phiên bản vala.

        1.    lolbimbo dijo

          Cập nhật vala nên xóa cảnh báo.

  3.   nước tiểu dijo

    Hướng dẫn được giải thích rõ ràng và tôi thích nó, chỉ có điều tôi luôn tự hỏi, tại sao luôn bắt đầu với chương trình "hello world", đối với người mới bắt đầu thì không sao, nhưng với những người đã có kinh nghiệm lập trình thì sao? Tại sao không chỉ ra cách tạo một giao diện với một số phần tử (nút, nhãn, v.v.)?

    Tôi thích Vala và tôi muốn học nó, nhưng sẽ mang tính xây dựng hơn nếu bắt đầu "ở giữa" hơn một chút, phải không?

    1.    lolbimbo dijo

      Sắp tới là một bài khác có trình độ trung cấp.

  4.   juanra20 dijo

    Java?

    Hướng dẫn tuyệt vời được giải thích tốt và mọi thứ thực sự khiến tôi cân nhắc việc đưa vala và gtk vào danh sách cần học của mình.

  5.   -ik- dijo

    Tuyệt vời, bây giờ tôi đề xuất một hướng dẫn Seed (javascript) + Gtk, nó sẽ khá thú vị, vì đây là tùy chọn chính thức mà dự án Gnome đã chọn.