GTK中是否有任何全局顶级窗口指针?

时间:2014-02-24 05:07:23

标签: gtk wxwidgets

GTK中是否有任何全局顶级窗口指针?

我知道在wxWidgets中,有。我们可以通过以下方式获得它们:

import wx
wx.GetTopLevelWindows()

GTK中是否有与wxWidgets类似的方法?

2 个答案:

答案 0 :(得分:3)

liberforce的建议很好:保持您的低级组件模块化。

但是,如果您真的想以与wxWidgets相同的方式执行此操作,请使用gtk_window_list_toplevels()

答案 1 :(得分:2)

最相似的是在toplever标识符上使用gtk_builder_get_object。否则,如果您手动创建指针而不是使用GtkBuilder,只需将指针指向窗口。我更喜欢这样,因为这种“我的低级组件可以依赖于对它上面的实现的调用”,这通常会导致代码中丑陋的意大利面条代码和循环依赖。

所以我通常只在main()中声明堆栈上的结构,因此结构将存在于整个应用程序生命周期中,并在回调的gpointer user_data参数中传递指向此结构的指针。在该结构中,我可以存储我的小部件或其他数据。