zoukankan      html  css  js  c++  java
  • GTK+-3.0编程 (二) 为创建的窗口添加一个按钮


    http://www.cnblogs.com/rain-blog/p/gtk3-2.html

      仅仅创建一个空白窗口是不够的,下面我们为创建的窗口添加一个按钮。

    以 Hello,World!为例。

    首先创建一个源文件:example2.c 内容如下。

    #include  <gtk/gtk.h>
    
    //点击按钮后被调用的函数,用于输出hello,world
    static void print_msg (GtkWidget *button , gpointer data)
    {
        printf("Hello , world!
    ");
    }
    
    static void activate (GtkApplication *app , gpointer data)
    {
        GtkWidget *win;
        
        //申明一个按钮
        GtkWidget *button;
        //申明一个盒容器,用于容纳按钮,控制大小
        GtkWidget *button_box;
    
        win = gtk_application_window_new(app);
    
        gtk_window_set_title(GTK_WINDOW(win) , "Button test");
        gtk_window_set_default_size(GTK_WINDOW(win) , 200 , 200);
    
        //创建一个盒容器,并设置水平放置
        button_box = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL); //gtk_orientation_horizontal
        
        //将盒容器包含进window中
        gtk_container_add(GTK_CONTAINER(win) , button_box);
    
        //创建一个按钮,并带有“My button” 的标签
        button = gtk_button_new_with_label("My button");
        
        //连接信号,让点击按钮后,便调用 print_msg 函数
        g_signal_connect(button , "clicked" , G_CALLBACK( print_msg ) , NULL);
     
     //将按钮放入盒容器中
        gtk_container_add(GTK_CONTAINER(button_box) , button);
    
        //显示window及其所有控件
        gtk_widget_show_all(win);
    }
    
    int main(int argc , char **argv)
    {
        GtkApplication *app;
        int app_status;
    
        app = gtk_application_new("org.gtk.exmple" , G_APPLICATION_FLAGS_NONE);
        g_signal_connect(app , "activate" , G_CALLBACK(activate) , NULL);
    
        app_status = g_application_run(G_APPLICATION(app) , argc , argv);
    
        g_object_unref(app);
    
        return app_status;
    }

      编译,运行结果如下:










  • 相关阅读:
    [题解] [JSOI2011] 任务调度
    [题解] [JSOI2011] 棒棒糖
    [题解] [JSOI2011] 柠檬
    [题解] [JSOI2010] 排名
    [湖南集训] 谈笑风生
    BZOJ 4695 最假女选手 线段树
    HNOI 2010 物品调度 并查集 置换
    Luogu P4299 首都 LCT
    BZOJ 2738 矩阵乘法 整体二分
    51nod 1175 区间第k大 整体二分
  • 原文地址:https://www.cnblogs.com/ztguang/p/12645242.html
Copyright © 2011-2022 走看看