#include <gtk/gtk.h>
/*定义回调函数,单击按钮时系统自动调用*/
void hello (GtkWidget *widget, gpointer *data)
{
g_print ("button clicked and data = %s\n", (char *)data);
}
/*定义回调函数destroy,关闭窗口时系统自动调用*/
void destroy(GtkWidget *widget, gpointer *data)
{
gtk_main_quit();
}
int main (int argc, char **argv)
{
/*定义指向控件的指针*/
GtkWidget *window;
GtkWidget *button;
/*初始化图形显示环境*/
gtk_init (&argc, &argv);
/*创建窗口,并设置当关闭窗口时,要执行的会调函数*/
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (GTK_OBJECT(window), "destroy", GTK_SIGNAL_FUNC(destroy), NULL);
/*设置窗口的属性*/
gtk_container_border_width (GTK_CONTAINER(window), 80);
/*创建按钮,并设置按钮上的文字*/
button = gtk_button_new_with_label("hello world");
/*设置当单击按钮时,要执行的回调函数*/
g_signal_connect (GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(hello), "I love you");
/*将按钮加入到窗口中*/
gtk_container_add (GTK_CONTAINER(window), button);
/*显示按钮和窗口*/
gtk_widget_show (button);
gtk_widget_show (window);
/*进入消息处理循环*/
gtk_main();
return (0);
}
gcc -o gtkwin.exe gtkwin.c `pkg-config --libs --cflags gtk+-2.0`
CC=gcc
program=gtkwin
LDLIBS=`pkg-config --libs gtk+-2.0`
CFLAGS= -Wall -g `pkg-config --cflags gtk+-2.0`
$(program):$(program).o
$(CC) $(LDLIBS) $(program).o -o $(program)
$(program).o:$(program).c
$(CC) $(CFLAGS) -c $(program).c
clean:
-rm -f $(program)
-rm -f *.o
g_signal_connect (GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(window));
void g_signal__handler _disconnect(GtkObject *object, gulong id);
void g_signal_handlers_destroy(GtkObject *object);
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) | Powered by Discuz! X3.2 |