GTK+中文社区(gtk.awaysoft.com)

 找回密码
 马上加入

QQ登录

只需一步,快速开始

查看: 3324|回复: 2

glade3教程(二)--简单绑定事件

[复制链接]
  • TA的每日心情
    奋斗
    2015-10-16 12:17
  • 签到天数: 401 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2013-7-17 00:14:49 | 显示全部楼层 |阅读模式

    今天的教程主要是简单事件的绑定。

       首先是在上个教程所做的窗口上加上容器里的“固定的” 然后在窗口的左边放置两个按钮 一个名称改成add 标签改成+   另一个名称改成sub 标签改成—,然后在按钮的右边放置一个标签  将名称改成label 标签改成0   另存为addsub.glade 如图

       打开输入以下代码 并保存为2.c  (具体请看注释)

    /*

    作者:bailangcn

    时间:2012/3/14

    作者主页:bailangcn.tk

    */

      #include <gtk/gtk.h>
    gint num=0;
    char buf[5];

    void add_label(GtkWidget *widget, gpointer label)
    {
        num++;
        sprintf(buf,"%d",num);
          /*这是gtk的一个函数,用来给Label设定文字*/
    gtk_label_set_text(GTK_LABEL(label),buf);
    }
    void sub_label(GtkWidget *widget, gpointer label)
    {
        num--;
        sprintf(buf,"%d",num);
         /*这是gtk的一个函数,用来给Label设定文字*/
    gtk_label_set_text(GTK_LABEL(label),buf);
    }
    int main(int argc, char *argv[])
    {
        GtkBuilder *builder;

        gtk_init(&argc, &argv);
        GtkWidget *window;
        GtkWidget *add;
        GtkWidget *sub;
        GtkWidget *label;
        builder = gtk_builder_new();
        gtk_builder_add_from_file(builder, "addsub.glade", NULL);

        window = GTK_WIDGET(gtk_builder_get_object(builder, "window"));
        add = GTK_WIDGET(gtk_builder_get_object(builder, "add"));
        sub = GTK_WIDGET(gtk_builder_get_object(builder, "sub"));
        label = GTK_WIDGET(gtk_builder_get_object(builder, "label"));

        g_signal_connect(G_OBJECT(window),"delete_event",G_CALLBACK(gtk_main_quit),NULL);
        g_signal_connect(G_OBJECT(add),"clicked",G_CALLBACK(add_label),(gpointer)label);
        g_signal_connect(G_OBJECT(sub),"clicked",G_CALLBACK(sub_label),(gpointer)label);
        gtk_builder_connect_signals(builder, NULL);
        // 释放builder的空间
        g_object_unref(G_OBJECT(builder));

        gtk_widget_show_all(window);
        gtk_main();
        return 0;
    }


    编译运行如下:(按下加按钮 右边的数字加一  按下减  数字减一)


    本文始发于:http://www.bailangcn.tk/?post=11转载请注明


  • TA的每日心情
    奋斗
    2015-10-16 12:17
  • 签到天数: 401 天

    连续签到: 1 天

    [LV.9]以坛为家II

     楼主| 发表于 2013-7-17 00:15:22 | 显示全部楼层
    我的沙发啊- -
    *滑块验证:
    您需要登录后才可以回帖 登录 | 马上加入

    本版积分规则

    申请友链|Archiver|小黑屋|手机版|GTK+中文社区 ( 粤ICP备13080851号 )

    我要啦免费统计

    GMT+8, 2024-3-29 02:10 , Processed in 0.046946 second(s), 9 queries , Redis On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表