GTK+ 图形编程 一个简单的例子


GTK+ 图形编程   一个简单的例子

gtkwin.c

#include<gtk/gtk.h>
void hello(GtkWidget *widget,gpointer *data) /*定义回调函数hello,单击按钮时系统自动调用*/
{
 g_print("button clicked and data = %s\n",(char *)data);
}
void destroy(GtkWidget *wiget,gpointer *data)/*定义回调函数destroy,关闭窗口时系统自动调用*/
{
 gtk_main_quit();
}
int main(int argc,char * *argv)
{
 GekWidget *window;/*定义指向控件的指针*/
 GekWidget *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),20);/*设置窗口属性*/
 button=gtk_button_new_with_label("hello world");/*创建按钮*/

/*设置当单击按钮时,要执行的回调函数*/
 g_signal_connect(GTK_OBJECT(button),"clicked",GTK_SIGNAL_FUNC(hello),"I am from button");
 gtk_container_add(GTK_CONTAINER(window),button);/*将按钮加入到窗口中*/

/*显示按钮和窗口*/
 gtk_widget_show(button);
 gtk_widget_show(window);

/*进入消息处理循环*/
 gtk_main();
 return 0;
}

总体步骤如下:

定义回调函数

定义窗口和控件指针

初始化图形显示环境

创建窗口和控件,并连接要执行的回调函数

将控件加入到窗口中

显示窗口和控件

进入消息处理循环

编译并运行:

#gcc -o gtkwin gtkwin.c `pkg --config --libs --cflags gtk+-2.0`

#./gtkwin

注意:编译命令中的"pkg --config --libs --cflags gtk+-2.0"两边的是反引号。

相关内容