Sono in un problema con un'applicazione GTK + C. Ho un contenitore che, all'avvio dell'applicazione, contiene un pulsante. Durante l'esecuzione un'interazione utente deve far sì che questo widget ne contenga di più.
Ho bisogno di scrivere una funzione che rimuove tutti i "vecchi" pulsanti interni, quindi aggiunge tutti quelli da un elenco e infine aggiorna la vista. Questo è quello che sto scrivendo, ma alcune parti sono mancanti (TODOs)Rimuovere i figli del contenitore GTK +, ripopolarlo, quindi aggiornare
void refresh_sequence_panel()
{
GSList* iterator = NULL;
GtkWidget* button;
// TODO: Here the container must be empty
// Now add all the buttons
for (iterator = steps; iterator; iterator = iterator->next) {
button = gtk_button_new_from_stock(GTK_STOCK_ADD);
gtk_widget_set_size_request(button, SEQ_BUTTON_W, SEQ_BUTTON_H);
gtk_box_pack_start(GTK_BOX(sequence_panel), button, FALSE, FALSE, 5);
handler_id = g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(seq_popup), GTK_BOX(sequence_panel));
}
// TODO: Now refresh the view, so I can see the changes...
}
La speranza che qualcuno possa aiutare, grazie!
Grazie, ero sicuro che hanno bisogno di un aggiornamento. – TheUnexpected
Puoi anche fare: gtk_container_foreach (GTK_CONTAINER (contenitore), (GtkCallback) gtk_widget_destroy, NULL) –