打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
GTK:回调函数实例
下面我们把之前的程序稍微改动一下,使它可以正常退出。
/*base2.c*/
#include <gtk/gtk.h>
int main(int argc, char* argv[])
{
GtkWidget *window;
gtk_init(&argc,&argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(GTK_OBJECT(window),"destroy",G_CALLBACK(gtk_main_quit),NULL);
gtk_widget_show(window);
gtk_main();
return FALSE;
}
$ gcc -o base2 base2.c 'pkg-config --cflags --libs gtk+-2.0'
$./base2
其中destroy为GTK+最基本信号之一,当关闭窗口时,发出该信号。还有一个是delete_event, 当将要关闭窗口时,发出该信号。
程序中添加了gtk_signal_connect函数,当用户关闭窗口时gtk_signel_connect函数调用gtk_main_quit函数来关闭程序。
大家也可以编写回调函数,在回调函数里结束程序。这样做的好处是当用户试图退出一个程序时,程序可以提示你是否真的退出。
自己编写回调函数的程序例子:
/*base2.c*/
#include <gtk/gtk.h>
ginit destroy(GtkWidget *,gpointer)
int main(int argc, char* argv[])
{
GtkWidget *window;
gtk_init(&argc,&argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(GTK_OBJECT(window),"destroy",G_CALLBACK(destroy),NULL);
gtk_widget_show(window);
gtk_main();
return 0;
}
ginit destroy(GtkWidget *widget,gpointer gdata)
{
g_print(“Quitting!/n”);
gtk_main_quit();
return(FALSE);
}
$ gcc -o base3 base3.c 'pkg-config --cflags --libs gtk+-2.0'
$./base3
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
GTK and Glade3 GUI Programming Tutorial
linux宝库/编程技术/用Gtk 开发Linux上的GUI应用软件
g_signal_connect() -- 信号连接
【原创】GLADE/GTK在WIN下的编译
main函数研究
int main(int argc,char* argv[])
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服