• 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

    阿斯达

  • 相关阅读:
    C#中的Byte,String,Int,Hex之间的转换函数。
    js继承之原型继承
    node.js module初步理解
    手游热更新方案--Unity3D下的CsToLua技术
    像素迷踪,当Unity的Frame Debugger力不从心时
    Unity内存理解(转)
    Unity5的AssetBundle(二、加载&卸载)
    Sprite Atlas与Sprite Mask详解
    Unity2017新功能Sprite Atlas详解
    Util应用程序框架公共操作类(一):数据类型转换公共操作类(介绍篇)
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/7196724.html
Copyright © 2020-2023  润新知