假设我们希望窗体里多放加入几个控件,直接加入是不成功的。由于窗体仅仅能容纳一个控件的容器。
这时候。我们须要借助布局容器,我们先把布局容器加入到窗体里。然后再把所须要加入的控件放在布局容器里。
布局容器的主要分类:水平布局( GtkHBox)、垂直布局(GtkVBox )、表格布局(GtkTable)、固定布局(GtkFixed )。
水平布局容器:
水平布局容器的创建:
GtkWidget *gtk_hbox_new( gboolean homogeneous,
gint spacing );
homogeneous:容器内控件是否大小一致( gboolean 取值为TRUE 或 FALSE )
spacing:控件之间的间隔( 以像素点为单位 )。gint相当于 C语言的int
返回值:水平布局控件指针
容器加入加入控件:
void gtk_container_add(GtkContainer *container,
GtkWidget *widget);
container:容纳控件的容器
widget:要加入的控件
显示容器上全部控件
void gtk_widget_show_all(GtkWidget *widget);
widget:须要显示的控件
完整代码例如以下:
#include <gtk/gtk.h> int main(int argc,char *argv[]) { //1.gtk环境初始化 gtk_init(&argc, &argv); //2.创建一个窗体 //GtkWidget *window = gtk_window_new(GTK_WINDOW_POPUP); GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); //设置窗体标题 gtk_window_set_title(GTK_WINDOW(window), "hbox"); //3.1创建一个水平容器 GtkWidget *hbox = gtk_hbox_new(TRUE, 10); //3.2将水平容器增加到窗体中 gtk_container_add(GTK_CONTAINER(window), hbox); //4.1.1创建按钮button1 GtkWidget *button1 = gtk_button_new_with_label("button1"); //4.1.2将button1增加到hbox中 gtk_container_add(GTK_CONTAINER(hbox), button1); //4.2.1创建按钮button2 GtkWidget *button2 = gtk_button_new_with_label("button2"); //4.2.2将button2增加到hbox gtk_container_add(GTK_CONTAINER(hbox), button2); //4.3.1创建按钮button3 GtkWidget *button3 = gtk_button_new_with_label("button3"); //4.3.2将button2增加到hbox gtk_container_add(GTK_CONTAINER(hbox), button3); //5.显示全部文件 gtk_widget_show_all(window); //6.主事件循环 gtk_main(); return 0; }
执行结果:
源代码下载:http://download.csdn.net/download/lianghe_work/8931851
转自:http://blog.csdn.net/tennysonsky/article/details/42741907
阿斯达