之后 第一篇文章 我读到一条评论,即从比“ 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(); time_bar.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;}
要移动“时间”,我们使用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元素...)
很好,我将问您如何制作一种TABS,但如何垂直制作,虽然它们不一定必须是选项卡,它们可以是按钮或ToggleButtons,但是我需要选项卡的行为,即在触摸1时可以看到其内容并另一个选项卡被禁用,我不知道我是否解释自己,我留下图像来查看您是否可以给我一些信息以进行调查。 谢谢!
IMAGE: http://i.imm.io/1jURw.png
“布局”或文本更改(例如)?
加泰罗尼亚语
实际上,这非常好,这与我在寻找的问题类似,可以以某种方式将此问题链接到终端吗?
例如:首先,我花时间回答,我将其无限使用,这就是我想要做的。
您要安装什么桌面环境?
KDE
侏儒3
肉桂
Unity
所有这些都链接到终端中各自的安装命令sudo apt-get install ubuntu-desktop
是的,您只需要编写Process.spawn_command_line_async(“ apt-get install ubuntu-desktop”);
http://valadoc.org/#!api=glib-2.0/GLib.Process.spawn_command_line_sync
太好了,我喜欢这个职位,我会继续练习(并且我很期待),问候