GTK+ : Widget 'resetten'

Hallo!
Ich suche nach einer Möglichkeit, unter GTK+ ein Widget zu resetten, also z.B. bei einer GtkHBox die childs zu entfernen oder bei einer GtkComboBox alle Elemente zu entfernen.
Könnt ihr mir helfen?

Danke, Hans

HBox und ComboBox sind erstmal komplett verschiedene Dinge vom Design her. Vorrausgesetzt du arbeitest mit gtk2:

HBox clearen (ungetestet)

void clearContainer(GtkContainer\* container)
{
 GList\* children = gtk\_container\_get\_children(container);
 while (children)
 {
 GtkWidget\* child = dlist-\>data;
 gtk\_widget\_destroy(child);
 children = children-\>next;
 }
 g\_list\_free(children);
}

Comboboxen sind MVC designed. Also das unterliegende Model holen und clearen, dabei musst aber wissen, welcher typ model drin steckt.
Hier mal allgemeiner code, der die Standardfälle unterstützt.

void clearComboBox(GtkComboBox\* combo)
{
 GtkTreeModel\* model = gtk\_combo\_box\_get\_model(combo);
 if (GTK\_IS\_LIST\_STORE(model))
 gtk\_list\_store\_clear(GTK\_LIST\_STORE(model));
 else if (GTK\_IS\_TREE\_STORE(model))
 gtk\_tree\_store\_clear(GTK\_TREE\_STORE(model));
 else
 g\_warning("unknown model found, cannot clear");
} 

Einfach mal die GTK reference auf der Homepage durchstöbern.

Einen „reset“ gibt es nicht. Alternativ könntest du aber die HBox bzw. Combobox einfach wegschmeissen und ein frisches an die selbe Stelle setzen. Dann hast du sowas wie einen „reset“.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]