GTK+点击事件(Code::Blocks + glade)

本文介绍了如何在Code::Blocks环境中结合Glade设计GUI,并处理GTK按钮的点击事件。通过在Glade中创建窗口、按钮和文本元素,设置ID和信号连接,然后在C程序中读取XML并响应点击事件,实现点击按钮后改变文本内容的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单的GTK点击事件处理方法

1、打开codeblocks,新建console c程序

2、打开glade,新建工程

3、在glade中放置窗口、框容器、按钮、文本

4、为文本、按钮设置id,分别为text和button。

再为按钮设置信号 clicked:bt_click

然后为窗体修改id:window

5、保存glade工程 到刚刚 新建的 c程序 目录下,取名为glade

6、打开codeblocks,将如下代码复制到程序中,建议结合注释进行分析

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

int main(int argc, char *argv[])
{
    //回调函数
    void bt_click( GtkWidget *widget, gpointer data);

    GtkBuilder *builder;
    GtkWidget *window;

    GtkWidget *text ;
    GtkWidget *button;

    gtk_init (&argc, &argv);
    builder = gtk_builder_new ();
    gtk_builder_add_from_file (builder, "glade.glade"/*读取刚刚保存的glade工程*/, NULL);
    window = GTK_WIDGET (gtk_builder_get_object (builder, "window"/*窗体的id*/));
    gtk_builder_connect_signals (builder, NULL);
    gtk_widget_show (window);

    text = GTK_LABEL(gtk_builder_get_object(builder, "text"/*读取ID为text的文本*/));
    button = GTK_BUTTON(gtk_builder_get_object(builder, "button"/*读取ID为button的按钮*/));

    g_signal_connect(G_OBJECT(button)/*按钮指针*/, "clicked"/*事件类型*/, G_CALLBACK(bt_click)/*回调函数*/, (gpointer)text);//链接到回调函数

    gtk_main ();

    return 0;
}
//回调函数
G_MODULE_EXPORT void bt_click(GtkWidget *widget,gpointer data){
    GtkLabel * labeltext = (GtkLabel *)data;//转换为文本指针
    gtk_label_set_label(labeltext, "Set this text");//设置文本内容
}

点击按钮,文本便被改成了相应的文字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值