Tôi gặp sự cố với ứng dụng GTK + C. Tôi có một container, khi bắt đầu ứng dụng, có chứa một nút. Trong khi chạy một tương tác người dùng phải làm cho widget này chứa nhiều hơn.
Tôi cần viết một hàm xóa tất cả các nút bên trong "cũ", sau đó thêm tất cả các nút trong danh sách và cuối cùng làm mới chế độ xem. Đây là những gì tôi đang viết nhưng một số phần bị thiếu (TODOs)Xóa trẻ em chứa GTK +, lắp lại, sau đó làm mới
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...
}
Hy vọng rằng ai đó có thể giúp, cảm ơn!
Cảm ơn bạn, tôi đã chắc chắn rằng nó cần phải làm mới. – TheUnexpected
Bạn cũng có thể làm: gtk_container_foreach (GTK_CONTAINER (vùng chứa), (GtkCallback) gtk_widget_destroy, NULL) –