Удалить дочерние элементы контейнера GTK +, повторно заполнить его, а затем обновить

У меня проблема с приложением GTK + C. У меня есть контейнер, который при запуске приложения содержит кнопку. Во время работы пользовательское взаимодействие должно привести к тому, что этот виджет будет содержать их больше.
Мне нужно написать функцию, которая удаляет все «старые» внутренние кнопки, затем добавляет все из списка и, наконец, обновляет представление. Это то, что я пишу, но некоторые части отсутствуют (TODO)

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...
}

Надеюсь, что кто-то может помочь, спасибо!

7
задан TheUnexpected 8 February 2012 в 11:23
поделиться