GTK入门学习:布局容器之水平布局

假设我们希望窗体里多放加入几个控件,直接加入是不成功的。由于窗体仅仅能容纳一个控件的容器。

这时候。我们须要借助布局容器,我们先把布局容器加入到窗体里。然后再把所须要加入的控件放在布局容器里。


布局容器的主要分类:水平布局( 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

阿斯达

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值