手动运行GTK事件循环

时间:2014-04-13 00:53:20

标签: mono unity3d gtk

我正在尝试将GTK(通过gtk-sharp绑定在.NET应用程序中)集成到已经具有“主循环”的应用程序中。调用Gtk.Application.Run()会导致整个事情在等待Gtk循环时基本上锁定。此外,这个应用程序无法真正按照通常的意义集成到GTK中(也就是说,使用GTK的空闲内容来为应用程序提供事件)。

有没有办法做相反的事情并手动运行GTK主事件循环?

现在我有这样的事情:

def _pump_gtk():
    while true:
        if Gtk.Application.EventsPending():
            Gtk.Application.RunIteration()
        yield

(产量是因为_pump_gtk在主应用程序中作为协程运行)

然而,这似乎有问题,因为Gtk认为没有主循环运行?我收到了很多Gtk-CRITICAL **: gtk_main_quit: assertion main_loops != NULL' failed个错误。

有没有办法手动运行GTK主循环?

0 个答案:

没有答案