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

GTK中是否有任何全局顶级windows指针?,gtk,wxwidgets,Gtk,Wxwidgets,GTK中是否有任何全局顶级windows指针 我知道在wxWidgets中有。我们可以通过以下方式获得: import wx wx.GetTopLevelWindows() GTK中的wxWidgets是否有类似的方法?最类似的方法是在toplever标识符上使用GTK\u builder\u get\u对象。否则,如果手动创建窗口而不是使用GtkBuilder,则只需将指向窗口的指针保留在周围即可。我更喜欢这样,因为这种“我的低级组件可以依赖于对它上面的实现的调用”常常导致代码中丑陋的意大利

GTK中是否有任何全局顶级windows指针

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

import wx
wx.GetTopLevelWindows()

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

最类似的方法是在toplever标识符上使用GTK\u builder\u get\u对象。否则,如果手动创建窗口而不是使用GtkBuilder,则只需将指向窗口的指针保留在周围即可。我更喜欢这样,因为这种“我的低级组件可以依赖于对它上面的实现的调用”常常导致代码中丑陋的意大利面代码和循环依赖


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

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


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

liberforce的建议很好:将底层组件模块化


但是,如果您真的想用与wxWidgets相同的方法来实现,那么请使用。

liberforce的建议很好:将较低级别的组件模块化

但是,如果您真的想用与wxWidgets相同的方法来实现它,请使用