盒的细节@GTK+ 2.0 中文教程连载
来源:互联网 发布:ubuntu远程连接 编辑:程序博客网 时间:2024/05/19 03:26
盒的细节
由于存在这样的弹性,所以在一开始使用 GTK 中的组装盒(packing box)的时候会有点让人迷惑。这里有许多选项,并且它们不容易一眼看出是如何组合在一起的。然而到最后,这里基本上只有五种不同的风格。
每一行包含一个带有若干按钮的横向盒。gtk_box_pack 是组装每个按钮到横向盒(hbox)的简写。每个按钮都是以同样的方式组装到横向盒里的(例如,以同样参数调用 gtk_box_pack_start() 函数)。
这是 gtk_box_pack_start() 函数的声明。
void gtk_box_pack_start( GtkBox *box,
GtkWidget *child,
gboolean expand,
gboolean fill,
guint padding );
第一个参数是你要把对象组装进去的盒,第二个就是该对象。目前这些对象将都是按钮,即我们要将这些按钮组装到盒中。
gtk_box_pack_start() 和 gtk_box_pack_end() 中的 expand 参数是用来控制构件在盒中是充满所有多余空间这样盒会扩展到充满所有分配给它的空间(TURE);还是盒收缩到仅仅符合构件的大小(FALSE)。设置 expand 为 FALSE 将允许你向左或向右对齐你的构件。否则,它们会在盒中展开,同样的效果只要用 gkt_box_pack_start() 或 gtk_box_pack_end() 之一就能实现。
fill 参数在 gtk_box_pack 中控制多余空间是分配给对象本身(TRUE),还是让多余空间围绕在这些对象周围分布(FALSE)。它只有在 expand 参数也为 TRUE 时才会生效。
当创建一个新盒时,函数看起来像下面这样:
GtkWidget *gtk_hbox_new ( gboolean homogeneous,
gint spacing );
gtk_hbox_new() 的 homogeneous 参数(对于gtk_vbox_new()也是一样)控制是否盒里的每个对象具有相同的大小(例如,在横向盒中等宽,或在纵向盒中等高)。若它被设置,gtk_box_pack()常规函数的expand参数就被忽略了,它本质上总被开启。
spacing(当盒被创建时设置)和 padding(当元素被组装时设置)有什么区别呢?Spacing 是加在对象之间,而 papadding 加在对象的每一边。看下面这张图应该会明白一点:
这面是产生上面这些图片的代码,其中做了不少注释,所以我希望你看下去不会有任何问题。自己编译它并玩玩它吧。
<<< PreviousHomeNext >>>组装构件Up组装示范程序
- 盒的细节@GTK+ 2.0 中文教程连载
- GTK rc 文件的格式@GTK+ 2.0 中文教程连载
- 编写 GTK 应用程序的技巧 @GTK+ 2.0 中文教程连载
- GTK+ 2.0 中文教程连载
- GTK 信号@GTK+ 2.0 中文教程连载
- 改进了的 Hello World@GTK+ 2.0 中文教程连载
- 构件的组织@GTK+ 2.0 中文教程连载
- “调整对象”的内部机制@GTK+ 2.0 中文教程连载
- 常用的范围函数@GTK+ 2.0 中文教程连载
- 设置构件的属性@GTK+ 2.0 中文教程连载
- 信号的发射和传播@GTK+ 2.0 中文教程连载
- 编写你自己的构件 概述@GTK+ 2.0 中文教程连载
- 一个构件的剖析@GTK+ 2.0 中文教程连载
- 深入的学习@GTK+ 2.0 中文教程连载
- 按钮盒 Button Boxes@GTK+ 2.0 中文教程连载
- 中文版说明@GTK+ 2.0 中文教程连载
- 简介@GTK+ 2.0 中文教程连载
- 事件@GTK+ 2.0 中文教程连载
- 组装构件@GTK+ 2.0 中文教程连载
- 全国数学建模竞赛广东赛区的获奖名单什么时候出来啊!
- 互联网的的三线城市发展
- 硬盘结构及其分区简介
- 我的状态之大学生活
- 盒的细节@GTK+ 2.0 中文教程连载
- 快速加好友!!!
- 俄罗斯方块(MFC)升级网络版
- struts2之值栈(value stack)
- 在MyEclipse中使用Aptana
- 追加内容到文件末尾的几种常用方法
- 有关继承的思考(1_of_n)
- 买基金
- 给DataGrid加CheckBox列并在表头添加全选、全选按钮、置零按钮