計算機程式設計/事件驅動程式設計
外觀
< 計算機程式設計
在這種型別的程式設計中,編寫一段程式碼來響應每個事件。事件可以是使用者事件,例如按鈕點選或滑鼠移動。事件也可以在計算機內部生成,例如計時器事件。最後,程式設計師可以生成事件。
響應事件有時被稱為處理事件。
該程式僅僅由響應事件的程式碼段組成。這些程式碼段可能反過來使用其他程式碼段(過程,方法)。
這個簡單的 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`
*/