c-在GTK+窗口中列出小部件

  • 本文关键字:小部 GTK+ 窗口 gtk
  • 更新时间 :
  • 英文 :


我有一个顶层窗口,其中包含许多spinbuttons。

实际上,用户选择他需要多少对象,按下按钮后,应用程序会提供一些操作。

通常我使用的是结构

typedef struct
{
.......
GtkWidget *widget;
.......
} _GUI;

该conatains小部件是通过gtk_builder_get_object()初始化的。之后我可以从他们那里得到信息。

但在这里,我需要涵盖很多(>50)的spinbuttons,还需要设置它们的属性(例如设置敏感选项等)。

那么问题是,是否可以列出顶层窗口的所有窗口小部件(也有框和扩展器),并以某种方式根据它们的类型对它们进行排序(GtkSpinButton、GtkWidget等)?

我希望避免直接指向特定的旋转按钮。

由于顶级窗口(GtkWindow)是GtkContainer的子类,因此可以使用gtk_container_forall()来迭代窗口的子类。

然后,对于每个子项,可以使用GObject的API:s(例如G_OBJECT_TYPE()宏宏宏)来计算每个子项的类型。如果您的旋转按钮位于窗口内的嵌套容器中,则可能需要递归。

最新更新