将 Gtk.Grid 分成两行
Separating Gtk.Grid into two rows
我想在我的 Gtk.Grid
里面放两个 "rows"。
每一行都有其元素。顶行将有几个彼此相邻的标签,而底行将有两个彼此相邻的按钮。两行中的元素都应在屏幕上居中。
我以前没有任何使用 Vala 的经验,但我认为我可以这样做:
//declaration of the grid
var layout = new Grid ();
layout.orientation = Gtk.Orientation.VERTICAL;
//declaration of labels
...
//attaching of labels
layout.attach (label1, 0, 0, 1, 1);
layout.attach_next_to (label2, label1, Gtk.PositionType.RIGHT, 1, 1);
layout.attach_next_to (label3, label2, Gtk.PositionType.RIGHT, 1, 1);
layout.attach_next_to (label4, label3, Gtk.PositionType.RIGHT, 1, 1);
layout.attach_next_to (label5, label4, Gtk.PositionType.RIGHT, 1, 1);
//declaration of buttons
...
layout.attach (startBtn, 0, 0, 1, 1);
layout.attach_next_to (stopBtn, startBtn, Gtk.PositionType.RIGHT, 1, 1);
但看起来好像不是这样。我试图找到一些例子,但它们旁边似乎都有一堆代码,所以现在我已经筋疲力尽了,但我仍然找不到解决这个问题的方法。
编辑:我得到的结果如下所示。
这里有一篇关于这个主题的非常好的文章:http://www.abenga.com/post/2014/11/10/layout-widgets/
正如 andlabs 指出的那样,我会使用
public void attach (Widget child, int left, int top, int width = 1, int height = 1)
http://valadoc.org/#!api=gtk+-3.0/Gtk.Grid.attach1
layout.attach (label1, 0, 0, 1, 1);
layout.attach (label2, 1, 0, 1, 1);
layout.attach (label3, 0, 1, 1, 1);
layout.attach (label4, 1, 1, 1, 1);
像这样的东西
-------------------
| label1 | label2 |
-------------------
| label3 | label4 |
-------------------
我想在我的 Gtk.Grid
里面放两个 "rows"。
每一行都有其元素。顶行将有几个彼此相邻的标签,而底行将有两个彼此相邻的按钮。两行中的元素都应在屏幕上居中。
我以前没有任何使用 Vala 的经验,但我认为我可以这样做:
//declaration of the grid
var layout = new Grid ();
layout.orientation = Gtk.Orientation.VERTICAL;
//declaration of labels
...
//attaching of labels
layout.attach (label1, 0, 0, 1, 1);
layout.attach_next_to (label2, label1, Gtk.PositionType.RIGHT, 1, 1);
layout.attach_next_to (label3, label2, Gtk.PositionType.RIGHT, 1, 1);
layout.attach_next_to (label4, label3, Gtk.PositionType.RIGHT, 1, 1);
layout.attach_next_to (label5, label4, Gtk.PositionType.RIGHT, 1, 1);
//declaration of buttons
...
layout.attach (startBtn, 0, 0, 1, 1);
layout.attach_next_to (stopBtn, startBtn, Gtk.PositionType.RIGHT, 1, 1);
但看起来好像不是这样。我试图找到一些例子,但它们旁边似乎都有一堆代码,所以现在我已经筋疲力尽了,但我仍然找不到解决这个问题的方法。
编辑:我得到的结果如下所示。
这里有一篇关于这个主题的非常好的文章:http://www.abenga.com/post/2014/11/10/layout-widgets/
正如 andlabs 指出的那样,我会使用
public void attach (Widget child, int left, int top, int width = 1, int height = 1)
http://valadoc.org/#!api=gtk+-3.0/Gtk.Grid.attach1
layout.attach (label1, 0, 0, 1, 1);
layout.attach (label2, 1, 0, 1, 1);
layout.attach (label3, 0, 1, 1, 1);
layout.attach (label4, 1, 1, 1, 1);
像这样的东西
-------------------
| label1 | label2 |
-------------------
| label3 | label4 |
-------------------