gtk学习:2.容器

#include <gtk/gtk.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

/******  To Simplify The Code Difficulty,Define The Follow Words  ******/

#define gtkwidget         GtkWidget
//构件的创建
#define gtk_init()        gtk_init(&argc,&argv)
//gtk的初始化
#define set_title        gtk_window_set_title
//窗口的标题: set_title(GTK_WINDOW(构件的名称),"标题");
#define set_position        gtk_window_set_position
//窗口的位置: set_position(GTK_WINDOW(构件的名称),GTK_WIN_POS_CENTER);
#define set_size          gtk_window_set_default_size
//窗口的大小: set_size(GTK_WINDOW(构件的名称),300,400);
#define gtk_window          GTK_WINDOW
#define gtk_container        GTK_CONTAINER

/******                                                       ******/


int main(int argc, char *argv[])
{
    gtkwidget *main_window;        //创建控件
    gtkwidget *button1;        //创建按钮1
    gtkwidget *button2;        //创建按钮2

    gtk_init();

    //一个只能容纳一个控件的main-window控件
    main_window=gtk_window_new(GTK_WINDOW_TOPLEVEL);

    set_title(gtk_window(main_window),"TEST");
    set_size(gtk_window(main_window),400,400);
    set_position(gtk_window(main_window),GTK_WIN_POS_CENTER);

    //创建按钮
    button1 = gtk_button_new_with_label("hello gtk");
    button2 = gtk_button_new_with_label("this my test0");
    //将button1放入窗口容器中
    gtk_container_add(gtk_container(main_window),button1);


    /*
    gtk_container_add(gtk_container(main_window),button2);
    在这里会添加button2会失败,因为main_window是只能容纳一个控件的容器
    */

    //显示上一步创建的窗口、按钮
    /*
    gtk_widget_show(main_window);
    gtk_widget_show(button1);
    上面的两行语句可以用下面的这个来进行代替
    */
    gtk_widget_show_all(main_window);    //显示main_window容器下的所有的控件

        /*********gtk的框架结尾:主事件循环*******/
        gtk_main();

        return 0;
}


/*
gtk中的控件分为两种控件:
(1)容器控件    --------A.容纳一个控件的容器控件:
                           窗口、按钮;
                 --------B.容纳多个控件的容器控件:
                       布局控件;
(2)非容器控件  --------           标签、行编辑;


窗口添加按钮的步骤:
(1)创建按钮:
        gtkwidget * button;
        button = gtk_button_new_label("button text");
(2)在窗口容器内添加按钮:
        gtk_container_add(gtk_container(target_window),button);
(3)显示按钮:
        方式A:
            gtk_widget_show(target_window);
                gtk_widget_show(button);
        方式B:
            get_widget_show_all(target_window);

*/
 

上一篇:在 QML 中定义 JavaScript 资源


下一篇:C#动态生成控件以及添加事件处理