如何循环GtkWidget的所有组件,比如GtkDialog?

如何循环GtkWidget的所有组件,比如GtkDialog?,gtk,Gtk,什么是获得GtkDialog孩子的正确方法 我试过这个: dlgg = gtk_file_chooser_dialog_new(...) GList *children = gtk_container_get_children(GTK_CONTAINER(dlgg)) for (GList * it = children; it; it = it->next) { if (GTK_IS_BUTTON(it->data)) g_print("button la

什么是获得GtkDialog孩子的正确方法

我试过这个:

dlgg = gtk_file_chooser_dialog_new(...)
GList *children = gtk_container_get_children(GTK_CONTAINER(dlgg))
for (GList * it = children; it; it = it->next)
{
    if (GTK_IS_BUTTON(it->data)) 
        g_print("button label %s\n", gtk_button_get_label(GTK_BUTTON(it->data)));
}
但没有产出。实际上,我调用gtk_dialog_run(dlgg),发现它至少有“取消”、“打开”按钮

我试过:

GtkWidget* action_area = gtk_dialog_get_action_area(GTK_DIALOG(dlgg));
GList *children = gtk_container_get_children(GTK_CONTAINER(dlgg));
但gcc抱怨:

error: `gtk_dialog_set_action_area' was not declared in this scope
我还包括
gtk/gtk.h
和其他方法,为什么


提前谢谢

打字错误?您写道,您使用了
gtk\u dialog\u get\u action\u area
,但gcc抱怨
gtk\u dialog\u set\u action\u area
不存在(注意set vs get)。前者确实存在并且应该起作用,后者确实不存在,请参见。还有一个问题是,您试图实现什么:为什么要尝试迭代GtkFileChooserDialog的子部件?