在使用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) |