将Gtk.Grid分为两行

将Gtk.Grid分为两行,gtk,vala,Gtk,Vala,我想在Gtk.Grid中有两行 每行都有其元素。最上面一行将有两个相邻的标签,而最下面一行将有两个相邻的按钮。两行中的元素应在屏幕上居中 我以前没有任何与Vala合作的经验,但我认为我可以这样做: //declaration of the grid var layout = new Grid (); layout.orientation = Gtk.Orientation.VERTICAL; //declaration of labels ... //attaching of labels

我想在
Gtk.Grid
中有两行

每行都有其元素。最上面一行将有两个相邻的标签,而最下面一行将有两个相邻的按钮。两行中的元素应在屏幕上居中

我以前没有任何与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);
但看起来不是那样的。我试图找到一些例子,但它们旁边似乎都有一堆代码,所以现在我已经筋疲力尽了,仍然找不到解决这个问题的方法

编辑:我得到的结果如下所示


这是一篇关于这个主题的非常好的文章:

正如andlabs指出的,我会使用
public-void-attach(小部件子部件,int-left,int-top,int-width=1,int-height=1)

像这样的事

-------------------
| label1 | label2 |
-------------------
| label3 | label4 |
-------------------

你发布的代码会发生什么变化?“你似乎差不多有了它,但我不完全确定你遗漏了什么。”我添加了显示我得到的结果的屏幕截图。啊,我现在明白了。
attach()
0,0
参数是要附加到的单元格。你正在更换控制装置。(您可能应该在stderr上有一个警告;如果没有…)请参阅。
-------------------
| label1 | label2 |
-------------------
| label3 | label4 |
-------------------