12.5.2 使用table排列控件(1)
1.创建和使用table容器
排列窗口中的控件的另一种方法是使用table(表格),可以把控件放到表格中指定的行和列中。
表格的行、列编号方法如图12-4所示。
 |
| 图12-4 表格行列编号方法 |
例如,某个控件占据图12-4阴影部分,则它所占格子的坐标为left(左)0,right(右)2,top(上)1,bottom(下)3。
创建table(表格)容器的函数为:
GtkWidget* gtk_table_new( gint rows, gint columns, gint homogeneous ); |
参数的含义如下。
rows:表格所占的行数。
columns:表格所占的列数。
homogeneous:如果其值为TRUE,表格中每个格子的大小被定义为其中最大控件的大小;如果为FALSE,则格子的宽度与最宽控件的宽度相同,高度与放入表格的最高控件相同。
将控件放入表格中,可以使用函数:
void gtk_table_attach( GtkTable*table, GtkWidget *child, gint left_attach, gint right_attach, gint top_attach, gint buttom_attach, gint xoptions, gint yoptions, gint xpadding, gint ypadding ); |
参数的含义如下。
table:要放入控件的表格。
child:要放入表格的控件。
left_attach、right_attach、top_attach、buttom_attach:控件在表格中的坐标。
xoptions、yoptions:指定了选项,可以是以下值或其组合:GTK_FILL,如果控件小于它所占用的格子,控件自动扩大到它所占格子的大小。GTK_SHRINK,如果控件大于它所占用的格子,控件自动缩小到它所占格子的大小。GTK_EXPAND,表格扩展,并利用窗口中所有可用的控件。
xpadding:指示控件与它所占格子左、右留出的空白大小,以像素表示。
ypadding:指示控件与它所占格子上、下留出的空白大小,以像素表示。
另一个将控件放入表格的函数是:
void gtk_table_attach_defaults( GtkTable *table, GtkWidget *child, gint left_attach, gint right_attach, gint top_attach, gint buttom_attach ); |
此函数参数的含义与gtk_table_attach()相同。
为了更准确地理解这些参数的含义,最好在运行例子程序时改变这些参数的值,然后查看程序显示的图形界面。
在演示表格控件的使用方法前,先介绍几个程序将会用到的控件。