如何使用Gtk :: Grid放置小部件,类似于Gtk :: 3中的Gtk :: Table

时间:2016-10-08 02:07:26

标签: c++ gtkmm3

最初我学习了pyGtk。几个月后,我决定改用Gtkmm。阅读官方文档,它告诉我Gtk :: Table已被弃用,我应该使用Gtk :: Grid。
如果我想将小部件放在第2行和第3行之间,以及第4和第5列之间,我将此代码与Gtk :: Table一起使用。

// Create variable.        
Gtk::Table table;

//Initiate table.
table(10,10,true);

//Place the widget in the proper position.
// table.attach(widget, left_attach, right_attach, top_attach, bottom_attach);
table.attach(widget,4,5,2,3);

在阅读了Gtk :: Grid之后我尝试了同样的事情,但这次使用了Gtk :: Grid。

// Create variable.        
Gtk::Grid grid;

//Place the widget in the proper position.
//grid.attach(widget, left, top, higth, width); 
grid.attach(widget,4,2,1,1);

但是当我尝试最后一个代码时,小部件(一个按钮)仍然位于左上角。任何人都知道我做错了什么? Gtk :: Grid是否有能力做我想做的事?

1 个答案:

答案 0 :(得分:0)

按钮保留在左上角,因为第一行或前三列中没有其他小部件占用任何空间,因此它们会折叠为零。

可能你想要的是

grid.set_row_homogeneous(true);
grid.set_column_homogeneous(true);

然后在位置0,0和位置9,9附加空白小部件,以确保网格有10行10列。