我有一个问题。我正在创建名为libgreattao的接口生成库。在GUI模式下运行时,它可以使用许多后端来渲染GUI。问题出在GTK + 2.0后端。我必须运行主循环并在某些事件退出它以在下一步中销毁窗口。在窗口的销毁事件中,我将再次从主循环退出 - 并且仅执行此操作。为什么我再次调用主循环?因为我必须处理创建的事件,同时破坏窗口(窗口必须破坏它的所有控制和隐藏)。问题是:一旦调用了gtk_widget_destroy,就会调用destroy信号的回调。我必须确保在主循环中调用应用程序的回调传递以允许从它退出,因此我为类GTKWIDGET定义自定义信号。当然,我可以使用变通方法,比如在第一个信号类型中破坏窗口(结束主循环的信号),但我的库在任何情况下都可以工作。
答案 0 :(得分:1)
我找到了解决方案,但不是很好。我必须添加超时事件,它将发出我的信号。我还没有找到更好的解决方案。