GTK + Cアプリケーションに問題があります。私は、アプリケーションを起動するときにボタンを含むコンテナを持っています。実行中、ユーザー介入は、このウィジェットにそれ以上のものを含める必要があります。
すべての「古い」内側ボタンを削除し、リストからすべてを追加して最後にビューを更新する関数を記述する必要があります。これは私が書いているが、いくつかの部分が(TODOのを)欠けているもので、誰かが助けることができることをGTK +コンテナの子を削除して再パープしてから、更新する
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...
}
希望、ありがとう!
ありがとう、私はそれがリフレッシュを必要と確信していました。 – TheUnexpected
次の操作も可能です: gtk_container_foreach(GTK_CONTAINER(コンテナ)、(GtkCallback)gtk_widget_destroy、NULL) –