用表组装@GTK+ 2.0 中文教程连载
来源:互联网 发布:数据能看出男宝女宝吗 编辑:程序博客网 时间:2024/05/20 03:39
用表组装
让我们看看另一种组装的方法 - 表(Tables)。 在某些情况下这是极其有用的。
使用表的时候,我们建立格来放入构件。构件可以占满我们所指定的所有空间.
第一个要看的,当然是gtk_table_new()这个函数:
GtkWidget *gtk_table_new( guint rows,
guint columns,
gboolean homogeneous );
第一个参数是表中要安排的行的数量,而第二个,显然,就是列的数量。
homogeneous 参数跟表格框(table's boxes)的大小处理有关。如果 homogeneous 是 TRUE,所有表格框的大小都将调整为表中最大构件的大小。如果 homogeneous 为 FALSE,每个表格框将会按照同行中最高的构件,与同列中最宽的构件来决定自身的大小。
行与列为从0到n编号,而n是我们在调用 gtk_table_new 时所指定的值。所以,如果你指定rows = 2及columns = 2, 布局图会看起来像这样:
0 1 2
0+----------+----------+
| | |
1+----------+----------+
| | |
2+----------+----------+
注意坐标系统开始于左上角。要向框中放置一个构件,使用下面的函数:
void gtk_table_attach( GtkTable *table,
GtkWidget *child,
guint left_attach,
guint right_attach,
guint top_attach,
guint bottom_attach,
GtkAttachOptions xoptions,
GtkAttachOptions yoptions,
guint xpadding,
guint ypadding );
第一个参数("table")是你已经创建的表,第二个参数("child")是你想放进表里的构件。
left_attach和right_attach参数指定构件放置的位置,并使用多少框来放。如果你想在2x2的表中的右下表项(table entry)处放入一个按钮,并且想让它只充满这个项,则left_attach应该为 = 1, right_attach = 2, top_attach = 1, bottom_attach = 2。
现在,如果你想让一个构件占据我们这个2x2表的整个顶行,你就用left_attach = 0, right_attach = 2, top_attach = 0, bottom_attach = 1。
xoptions及yoptions是用来指定组装时的选项,可以通过使用“位或”运算以允许多重选项。
这些选项是:
- GTK_FILL
如果表框大于构件,同时GTK_FILL被指定,该构件会扩展开以使用所有可用的空间。
- GTK_SHRINK
如果表构件分配到的空间比需求的小(通常是用户在改变窗口大小的时候),那么构件将会推到窗口的底部以外的区域,无法看见。如果GTK_SHRINK被指定了,构件将和表一起缩小。
- GTK_EXPAND
这会导致表扩展以用完窗口中所有的保留空间。
Padding和在盒(boxes)中的一样,在构件的周围产生一个指定象素的空白区域。
gtk_table_attach()有很多选项,所以,这里有一个简写:
void gtk_table_attach_defaults( GtkTable *table,
GtkWidget *widget,
guint left_attach,
guint right_attach,
guint top_attach,
guint bottom_attach );
X及Y选项默认为GTK_FILL | GTK_EXPAND,X和Y的padding则设为0。其余的参数与前面的函数一样。
我们还有 gtk_table_set_row_spacing() 和 gtk_table_set_col_spacing()。这些在指定的行或列之间插入空白。
void gtk_table_set_row_spacing( GtkTable *table,
guint row,
guint spacing );
和
void gtk_table_set_col_spacing ( GtkTable *table,
guint column,
guint spacing );
注意,对列来说,空白插到列的右边,对行来说,空白插入行的下边。
也可以为所有的行或/和列设置相同的间隔:
void gtk_table_set_row_spacings( GtkTable *table,
guint spacing );
和,
void gtk_table_set_col_spacings( GtkTable *table,
guint spacing );
注意,用这些调用,最后一行和最后一列并不会有任何空白存在。
<<< PreviousHomeNext >>>组装示范程序Up表组装示例
- 用表组装@GTK+ 2.0 中文教程连载
- 组装构件@GTK+ 2.0 中文教程连载
- 表组装示例@GTK+ 2.0 中文教程连载
- 组装示范程序@GTK+ 2.0 中文教程连载
- 术语表@GTK+ 2.0 中文教程连载
- GTK+ 2.0 中文教程连载
- GTK 信号@GTK+ 2.0 中文教程连载
- GLib双向链表@GTK+ 2.0 中文教程连载
- GLib单向链表@GTK+ 2.0 中文教程连载
- 中文版说明@GTK+ 2.0 中文教程连载
- 简介@GTK+ 2.0 中文教程连载
- 事件@GTK+ 2.0 中文教程连载
- 数据类型@GTK+ 2.0 中文教程连载
- 构件概述@GTK+ 2.0 中文教程连载
- 对话框 Dialogs@GTK+ 2.0 中文教程连载
- 标尺 Rulers@GTK+ 2.0 中文教程连载
- 状态栏 Statusbars@GTK+ 2.0 中文教程连载
- 日历 Calendar@GTK+ 2.0 中文教程连载
- 颠倒数组顺序
- SSH error:a public key file has not been specified by this session
- jquery 图形报表插件jqplot 简介及参数详解
- jquery 图形报表插件jqplot 简介及参数详解
- sy-subrc的用法
- 用表组装@GTK+ 2.0 中文教程连载
- 我在听
- error C2275: “XXX”: 将此类型用作表达式非法(转)
- wince VECTOR bug使用记录
- 遍历map方法
- 让Centos支持NTFS格式
- 一个轻量级网络通信开发库源码
- 创建路径
- 第四课 控制台程序 dos版加法计算器 变量的应用