计算机编程/事件驱动编程
外观
< 计算机编程
在这种类型的编程中,编写一段代码来响应每个事件。事件可以是用户事件,例如按钮点击或鼠标移动。事件也可以在计算机内部生成,例如计时器事件。最后,程序员可以生成事件。
响应事件有时被称为处理事件。
该程序仅仅由响应事件的代码段组成。这些代码段可能反过来使用其他代码段(过程,方法)。
这个简单的 GTK+ 程序制作了一个具有按钮的 GUI,该按钮响应点击事件,我们在由 gtk_main() 函数提供的循环中输入后。每当发生事件时,例如 "clicked" 事件,我们通过 g_signal_connect() 函数查找与其连接的事件处理程序,并通过调用它们来委托函数。在本例中,调用了处理程序 btn_clicked。
/*
# GtkBook :
# A Book for GTK+ users.
# Copyright (C) July, 2005 Muthiah Annamalai
#
# This program is free software; Licensed under GPL.
*/
#include<gtk/gtk.h>
gboolean
btn_clicked(GtkWidget *w,gpointer data)
{
GtkButton *btn=GTK_BUTTON(w);
gtk_button_set_label(btn,"You Cliked Me");
return TRUE;
}
int main()
{
GtkWidget *w,*box,*btn;
gtk_init(NULL,NULL);
w=gtk_window_new(GTK_WINDOW_TOPLEVEL);
box=gtk_vbox_new(!FALSE,!FALSE);
gtk_window_set_title(GTK_WINDOW(w),"Button Widget");
btn=gtk_button_new_with_label("Hello World! Click Me:");
gtk_container_add(GTK_CONTAINER(w),btn);
g_signal_connect(G_OBJECT(btn),"clicked",G_CALLBACK(btn_clicked),NULL);
gtk_window_set_position(GTK_WINDOW(w),GTK_WIN_POS_CENTER);
gtk_widget_show_all(w);
gtk_main();
return 0;
}
/*
gcc -o button button.c -Wall -ggdb `pkg-config gtk+-2.0 --cflags --libs`
*/