0

我有一个包含很多微调按钮的顶级窗口。

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

通常我使用的是结构

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

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

但是在这里我需要覆盖很多(> 50)的旋转按钮,并且我还需要设置它们的属性(例如设置敏感选项等)。

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

我想避免直接指向特定的微调按钮。

4

1 回答 1

2

由于顶层窗口(一个 GtkWindow)是 GtkContainer 的子类,例如,您可以使用gtk_container_forall()来遍历窗口的子级。

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

于 2013-02-19T14:32:57.287 回答