創建一個Vala + Gtk3應用程序。 [第一部分]

之後 第一篇文章 我讀到一條評論,即從比“ hello world”更複雜的東西開始會更好,然後我將做一個序列(或3 4)後創建一個簡單的應用程序(使用vala + gtk 3)。

該應用程序將包括一個簡單的多選問答遊戲(Trivia類型),其中錯誤回答3個問題(遊戲結束),並且目標是在有限的時間內回答盡可能多的問題。答复。

企業網站規劃建置

我們的應用程序的主要設計將是:

應用

稍後,我們將放置一些按鈕,這些按鈕將為我們提供50%(消除兩個錯誤答案),凍結時間,通過問題的選項。 它們全部只能使用一次,一旦使用則被禁用。

設計一個 
正如我們在設計中看到的那樣,我們可以看到將要使用的gtk元素:

答案->按鈕。

問題->標籤。

時間-> ProgressBar。

錯誤/正確的點和問題->標籤。

我們可以看到我們具有垂直結構,因此可以垂直使用GBox。

int main(string [] args){Gtk.init(ref args); var window = new Gtk.Window(); window.title =“ app”; window.window_position = Gtk.WindowPosition.CENTER; window.set_default_size(300,340); window.destroy.connect(Gtk.main_quit); window.set_border_width(10); //垂直框var box = new Gtk.Box(Gtk.Orientation.VERTICAL,0); box.set_spacing(10); //問題的標籤var question = new Gtk.Label(“ Question?”); //時間程序欄var time_bar = new Gtk.ProgressBar(); timebar.set_text(“ Time”); time_bar.set_show_text(true); //響應按鈕var response1 =新的Gtk.Button.with_label(“ Response 1”); var resposta2 =新的Gtk.Button.with_label(“回复2”); var resposta3 =新的Gtk.Button.with_label(“回复3”); var resposta4 =新的Gtk.Button.with_label(“回复4”); //標籤信息var points = new Gtk.Label(“ Points:0”); box.pack_start(問題); box.pack_start(time_bar); box.pack_start(reply1); box.pack_start(resposta2); box.pack_start(resposta3); box.pack_start(resposta4); box.pack_start(點); window.add(框); window.show_all(); Gtk.main(); 返回0;}

從2013-11-02 21:44:14捕獲

要移動“時間”,我們使用GLib.Timeout,每500毫秒將激活一次(這是一個循環,其中包含我們的柱值的變量將增加)

GLib.Timeout.add(500,()=> {//獲取當前進度://(0.0-> 0%; 1.0-> 100%)double progress = time_bar.get_fraction(); //更新進度條:進度=進度+ 0.01; time_bar.set_fraction(進度); //重複直到100%返回進度<1.0;});

感興趣的鏈接 
http://www.valadoc.org/#!wiki=index (您可以使用其方法找到所有gtk元素...)


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   洛扎諾 他說:

    很好,我將問您如何製作一種TABS,但如何垂直製作,雖然它們不一定必須是選項卡,它們可以是按鈕或ToggleButtons,但是我需要選項卡的行為,即當觸摸其內容時1可以看到並且其他選項卡已禁用,我不知道是否要解釋自己,我留下圖像來查看是否可以給我一些信息以進行調查。 謝謝!

    圖片: http://i.imm.io/1jURw.png

    1.    洛賓博 他說:

      “佈局”還是文本更改(例如)?

  2.   潘德夫92 他說:

    加泰羅尼亞語

  3.   目瞪口呆 他說:

    實際上,這非常好,這與我在尋找的問題類似,可以以某種方式將此問題鏈接到終端嗎?
    例如:首先,我花時間回答,我將其無限使用,這就是我想要做的。

    您要安裝什麼桌面環境?
    KDE
    Gnome 3
    肉桂
    統一

    所有這些都鏈接到終端中各自的安裝命令sudo apt-get install ubuntu-desktop

    1.    洛賓博 他說:

      是的,您只需要編寫Process.spawn_command_line_async(“ apt-get install ubuntu-desktop”);

      http://valadoc.org/#!api=glib-2.0/GLib.Process.spawn_command_line_sync

  4.   烏里韋(Saul Uribe) 他說:

    太好了,我喜歡這個職位,我會繼續練習(並且我很期待),問候