Chinaunix首页 | 论坛 | 博客
  • 博客访问: 42907
  • 博文数量: 22
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 255
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-21 17:00
文章分类

全部博文(22)

文章存档

2011年(1)

2009年(2)

2008年(19)

我的朋友

分类: LINUX

2009-03-11 16:58:46

在使用GTK+之前,你需要初始化它;初始化连接window system display,并且附加上一些标准命令行参数。gtk_init()函数初始化GTK+。如果有错误发生,gtk_init()将退出程序;使用gtk_init_check()可以避免退出。gtk_init_check()允许你从一次失败的GTK+初始化中恢复--你可能要从字符模式下启动你的应用程序。

和所有的GUI工具箱一样,GTK+使用事件(event)驱动的编程模型。当用户不做操作时,GTK+待在主循环(main loop)中并且等待输入。如果用户做了一些动作--比如,按了一下鼠标--然后主循环“被唤醒”并且传送一个事件给GTK+。GTK+将这个事件传给一个或多个widgets。

当widgets收到一个事件,他们通常触发(emit)一个或多个信号(signals)。信号通过调用函数来通知你的程序“一些有趣的事发生了”,这些函数是你通过给g_signal_connect()连接到这个信号上的。连接到一个信号上的函数通常的术语是回调函数(callbacks)。

当你的回调函数被调用时,典型的,你可能会做一些动作--比如,当一个打开按钮被点击时,你可能会显示一个GtkFileSelectionDialog。回调函数执行结束后,GTK+将返回到主循环并等待更多的用户输入。

可以直接使用GLib的主循环代替gtk_main(),虽然这需要稍微多点的输入。在GLib的文档中查阅GMainLoop。
阅读(490) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~