Gtk+的布局和Java,QT的布局基本上都是一样的,大致分为:垂直布局、水平布局、表格式布局、绝对布局,个人认为如果在没有像Delphi一样的设计窗体的IDE中,如果完全依靠代码来编写的界面的情况下,垂直布局、水平布局和表格式布局是比较常用和比较好控制的方式,而如果拥有很好的二维空间或是三维空间思维的话,可以考虑用绝对布局,还可以使用Glade Interface Designer对Gtk+的GUI进行布局设置,本人不太熟悉该软件的操作,一般都喜欢用代码来编写界面,对于初学者,可以通过这个方式熟悉Gtk+的代码,不过这些都是因人而异,根据自己的喜好吧。
垂直布局(VLayout),Gtk+的垂直布局一般采用GtkVBox,一种垂直盒装容器,可以在容器中安放各种其他的子构件(如:GtkButton,GtkLabel,GtkFrame,GtkEntry,GtkCombox等),可以通过下列方式创建一个垂直盒装容器:
GtkWidget* gtk_vbox_new(gboolean homogeneous,gint spacing);其中参数homogeneous为布尔类型值(TRUE or FALSE),当值为TRUE时表示在容器中的子构件的是平均分配空间,参数spacing是各个子构件之间的间隔。
Example:GtkWidget *vbox = gtk_vbox_new(TRUE,5);
水平布局(HLayout),Gtk+的水平布局一般采用GtkHBox,一种水平盒装容器,安放子构件同上,通过下列方式创建一个水平盒装容器:
GtkWidget* gtk_hbox_new(gboolean homogene