g_main_loop如何在gtk编程中工作?

时间:2010-01-11 15:01:40

标签: c event-handling gtk glib

我是GTK +编程的新手。我遇到了一个名为g_main_loop()的API。我在我的代码中使用它但我仍然不知道它是如何工作的。有人可以用小代码片段解释g_main_loop()吗?

1 个答案:

答案 0 :(得分:3)

我建议reading the documentation,从链接到函数g_main_loop_new()开始。

基本上,让glib“拥有”你的应用程序的主循环可以更容易地支持诸如“可插入”事件源之类的东西;您的应用程序监听来自GTK +小部件的两个(例如)事件,以及网络套接字或Unix管道。这些是需要在应用程序的主循环中以相当低的级别连接在一起的东西,并让glib拥有这些部分使其更容易。

有一些glib数据结构(如IO channels)与主循环兼容,允许您向循环管理的输入集添加内容。对于GTK +,连接是自动的,GTK +的主循环(gtk_main())包含了glib。