Linux下的GTK图形界面编程
- 布局格式
2.1打包盒子
对GTK显示格式的控制是通常通过打包盒子来完成的。widget组件打包可以采用两种方式,水平盒子和垂直盒子。若将widget组件打包进平行盒子,组件就被依次水平的插入窗口;若是垂直盒子,则组件排列是垂直的。产生新的水平盒子的函数为
GtkWidget *gtk_hbox_new (gint homogeneous, gint spacing);
参数homogeneous是用来控制是否盒子中的每个组件都有同样的大小(例如水平盒子中的控件有同样的宽度,垂直盒子中的控件有同样的高度)。Spacing参数是组件之间的间隔。
垂直盒子的创建函数是gtk_vbox_new(),定义与水平盒子一致。
gtk_box_pack_start()和gtk_box_pack_end()函数是用来将打包对象放入这些盒子中的。
void gtk_box_pack_start( GtkBox *box, GtkWidget *child,
gint expand, gint fill, gint padding );
第一个参数是你将组件打进去的盒子指针,第二个参数是你将要打进去的组件指针。Expand参数是用来控制是否允许组件扩展至分配给盒子空间的大小(选TRUE),还是盒子的大小收缩到组件那么大(选FALSE)。函数中的fill参数是用来控制是否将多余的空间分配给组件,即将组件扩展到盒子的大小(选TRUE),或者多余的空间不变,保留作为盒子和打包组件间的间隔。该参数只有在expand参数取TRUE时才有效。Padding参数是指组件四周与盒子的间隔大小。
注意fill取FALSE值,expand取TRUE值时与expand取FALSE值,fill值无效的区别。前者的盒子仍是原来创建盒子时指定的大小,而后者的盒子已经缩小到打包组件的大小了。
gtk_box_pack_end()函数的参数与上面描述的一致。只是排列顺序分别是从下到上,从右到左。
最后将所有的盒子或组件打包到一个大盒子中,用gtk_container_add()函数将盒子加入窗口即可。
2.2
《Linux下的GTK图形界面编程(第3页)》