我們將在這個小教程中看到如何使用Vala和GTK3邁出第一步。 讓我們開始吧:
安裝必要的工具
sudo apt-get install valac libgtk-3-dev
IDE:
我們可以找到各種各樣的編輯器,可以使用它們/將其配置為IDE。 他們的例子是 刮, 崇高文本, Geany …就我而言,我將使用Scratch(我們可以在基本操作系統中找到)。
讓我們看一下Hello World!的典型示例,如下所示:
代碼看起來像這樣:
現在,讓我們看一下代碼的細節。 我們有一個類,它是一個Gtk窗口。
#我們使用參數Gtk.init(ref args)初始化Gtk; #我們創建應用程序。 應用程序app =新應用程序(); #我們將應用程序放置在屏幕中央。 app.window_position = Gtk.WindowPosition.CENTER; #關閉時,我們將銷毀應用程序。 app.destroy.connect(Gtk.main_quit); #我們測量窗口app.set_default_size(100,50); #我們創建一個按鈕並連接按鈕單擊事件並打印一個問候! var button = new Gtk.Button.with_label(“問好”); button.clicked.connect(()=> {print(“ Hello!\ n”);}); #將按鈕添加到應用程序app.add(按鈕); #我們顯示App / Window app.show_all();
通過單擊按鈕,我們將得到如下輸出:
我們編譯並執行:
$ valac -v lol.vala –pkg gtk + -3.0 $ ./lol
現在,我給您留下一些有趣的鏈接:
http://elementaryos.org/docs/code/the-basic-setup
沒有繪製窗口的想法的問題在於,您必須了解創建窗口的類的所有方法,實際上是一種原始方法。
如果您在設計階段做得很好,那麼在編程時就沒有理由使用IDE。
您不了解我,我是說有一個想法可以為您(Windows)做到這一點,而無需原則上鍵入代碼:
http://imagebin.org/275532
這使您不必知道按鈕的方法是什麼,等等。
使用IDE只會節省時間……但是,如果我們談論使用IDE或編譯時使用的TERMINAL時的功能,它們都實現相同的功能。
這是口味和舒適性的問題。
好吧,你有Glade(https://glade.gnome.org/),這是一種RAD工具,可讓您通過單擊鼠標快速設計應用程序窗口。
創建接口後,它將生成xml格式的文件,您可以從諸如C,C ++,Python,Perl,Vala,Java等編程語言中調用該文件。
我希望這回答了你的問題。
如果有集成窗口創建器的想法,請使用Anjuta IDE。
你好Lolbimbo:
前一段時間,出於x的原因,我決定在D和Golang之前使用Vala作為主要語言,但是我陷入了一個問題,即我已經很好地編譯了代碼,但是現在出現以下錯誤:
/media/…/vala/nn.vala.c:在“ main”函數中:
/media/…/vala/nn.vala.c:155:2:警告:不建議使用“ g_type_init”(在/usr/include/glib-2.0/gobject/gtype.h:669聲明)[-Wdeprecated-declarations]
g_type_init();
如果麻煩太多了,我會理解的,在此先感謝並祝賀博客。
您好朋友,我從vala開始,但是將您在線155上的代碼傳遞給我,無論如何,這是一個警告,而不是錯誤,如果它對您有用,則什麼都不會發生,因為它可能是vala錯誤。
您好Lolimbo,我很高興您的熱情,因為我在vala中感到孤獨,實際上,錯誤使我的代碼變得簡單如:使用Gtk;
int main(字符串[] args){
Gtk.init(ref args);
var window = new Window();
window.title =“第一個GTK +程序”;
窗口.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(“ 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版本的問題,我不知道。
更新vala應該刪除警告。
教程講得很好,我喜歡它,就像我一直想知道的那樣,為什麼總是從“ hello world”程序開始,對於初學者來說就可以了,但是那些已經有編程經驗的人呢? 為什麼不說明如何使用多個元素(按鈕,標籤等)創建界面?
我喜歡Vala,並且想學習它,但是在“之間”開始更多一點會更具建設性,對嗎?
不久之後便是另一個中級職位。
Java的?
很好的教程進行了很好的解釋,這實際上使我考慮將vala和gtk放在我的學習列表中。
太好了,現在我建議使用Seed(javascript)+ Gtk教程,這將非常有趣,因為這是Gnome項目選擇的正式選項。