打印本文 打印本文 关闭窗口 关闭窗口
Linux GUI编程笔记之GTK+篇(2)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1896  更新时间:2009/4/22 20:45:33  文章录入:mintao  责任编辑:mintao
Y(竖向)方向上的间距。
怎么样,这个函数也不是挺简单的?不过要是你觉得这个函数还是太麻烦,你还可以使用下面这个函数:
void gtk_table_attach_defaults( GtkTable  *table,  //盒子
                                GtkWidget *widget,  //要加入盒子的子控件
                                guint      left_attach,
                                guint      right_attach,
                                guint      top_attach,
                                guint      bottom_attach );

这个函数省略了后面4个参数,它默认xoption, yoption都是:GTK_FILL | GTK_EXPAND
然后xpadding, ypadding都是0, 这样一来节省了我们不少时间。

我们学完了GTK+的布局容器,现在可以用各种控件来组合我们的应用程序界面了。各种容器之间又可以相互嵌套,这样一来构造复杂的界面也变得容易了。但是GTK+中也提供了一种让我们像Windows窗体那样直接就可以往窗体上摆控件的方法,那就是用GtkFixed:

GtkWidget*  gtk_fixed_new(void);   /* 建立一个自由布局控件 */

/* 往布局上加子控件 */
void        gtk_fixed_put(GtkFixed *fixed,   //自由布局控件
                         GtkWidget *widget,  //要加入的子控件
                          gint x,      //相对于fixed左上角的横坐标
                          gint y);     //相对于fixed左上角的纵坐标
/* 移动子控件 */
void        gtk_fixed_move(GtkFixed *fixed,   //自由布局控件
                           GtkWidget *widget, //要加入的子控件
                           gint x,            //新的X坐标
                           gint y);           //新的Y坐标
有了以上几个函数,我们就可以像Windows Form一样操作控件了,比如以下代码:
 fixed = gtk_fixed_new();
 gtk_widget_set_usize(fixed,150,150);
 button1 = gtk_button_new_with_label("按钮一");
 gtk_fixed_put(GTK_FIXED(fixed),button1,5,5);
 button2 = gtk_button_new_with_label("按钮二");
 gtk_fixed_put(GTK_FIXED(fixed),button2,55,55);
 button3 = gtk_button_new_with_label("按钮三");
 gtk_fixed_put(GTK_FIXED(fixed),button3,105,105);
会产生如下的界面:

好了,关于GTK+的窗体布局部分,我们已经学习完了。


PS: 本文参照了IBM DeveloperWorks里面宋国伟先生的一篇文章,且借用了几张图片,在这里表示感谢。
原文请查看:http://www-900.ibm.com/developerWorks/cn/linux/l-gtk/index.shtml

                                             -----------2004-7-29

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口