반응형
gtk+2.0을 이용한 예제코드입니다.

버튼을 하나 생성하고 이벤트 핸들러에

등록하여 터미널에 메시지를 출력하는

코드입니다.


개발환경
   Gentoo Linux 2.6.29-r5
   gcc 4.3.3
에서
   우분투 9.04 (본인)
로 변경
#include <stdio.h>
#include <stdlib.h>
#include <gtk-2.0/gtk/gtk.h>

int destroy_func(GtkWidget *widget, gpointer gdata)
{
g_print("quit....\n");
//gtk 프로그램 종료
gtk_main_quit();

return FALSE;
}

void button_is_clicked(GtkWidget *widget, gpointer gdata)
{
g_print("button is clicked!\n");
}

int main(int argc, char **argv)
{
GtkWidget *w;
GtkWidget *button;
gtk_init(&argc, &argv);

//window 생성
w = gtk_window_new(GTK_WINDOW_TOPLEVEL);

//종료시 callback function 등록
gtk_signal_connect( GTK_OBJECT(w), "delete_event",
GTK_SIGNAL_FUNC(destroy_func), NULL);

//button 생성
button = gtk_button_new_with_label("Click me");
//button 클릭시 callback function 등록
gtk_signal_connect( GTK_OBJECT(button), "clicked",
GTK_SIGNAL_FUNC(button_is_clicked), NULL);

//button을 담을 container설정
gtk_container_border_width(GTK_CONTAINER(w), 15);

//button을 container에 추가
gtk_container_add(GTK_CONTAINER(w), button);

gtk_widget_show(button);
//window 사이즈 설정
gtk_window_set_default_size(w, 200, 100);

gtk_widget_show(w);

//gtk 메인 루프
gtk_main();
return 0;
}

출처 - http://exsuperstar.net -

반응형

+ Recent posts