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).
Hãy xem ví dụ điển hình của Hello World !, sẽ như sau:
Và mã sẽ như thế này:
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ú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
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ự.
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.
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.
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.
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.
Nếu có ý tưởng tích hợp trình tạo cửa sổ, Anjuta IDE.
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.
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.
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.
Cập nhật vala nên xóa cảnh báo.
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?
Sắp tới là một bài khác có trình độ trung cấp.
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.
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.