GTK+中用于管理各种构件布局的是一类特殊的构件,称作布局容器(Layout Containers),这类构件不可见,并且有很多种,常用的有以下几种:
GtkHBox:水平组装盒
GtkVBox:垂直组装盒
GtkTable:表组装
GtkAlignment:可以控制子构件的对其方式和大小
GtkHBox和GtkVBox
GtkHBox可以将它的子构件横向排列,GtkVBox可以将它的子构件纵向排列。创建构件盒的函数如下:
GtkWidget * gtk_vbox_new (gboolean homogeneous, gint spacing);
GtkWidget * gtk_hbox_new (gboolean homogeneous, gint spacing);
homogeneous是一个布尔值,为TRUE时,强制盒中的构件都占用相同大小的空间,不管每个空间的大小。spacing是以像素为单位设置的构件之间的间距。
建好组装盒后,用如下函数向盒中添加构件:
void gtk_box_pack_start (GtkBox *box, GtkWidget *child, gboolean expand, gboolean fill, guint padding);
void gtk_box_pack_end (GtkBox *box, GtkWidget *child, gboolean expand, gboolean fill, guint padding);
两个函数的用法可以参考API手册。下面用这两个构件设计一个如下样式的窗口: