मुझे जीटीके + सी एप्लिकेशन के साथ समस्या है। मेरे पास एक कंटेनर है कि, एप्लिकेशन शुरू करते समय, एक बटन होता है। चलने वाले उपयोगकर्ता इंटरैक्शन के दौरान इस विजेट को उनमें से अधिक शामिल होना चाहिए।
मुझे एक ऐसा फ़ंक्शन लिखने की आवश्यकता है जो सभी "पुराने" आंतरिक बटन को हटा दे, फिर सभी को एक सूची से जोड़ दें और अंत में दृश्य को रीफ्रेश करें। यही वह है जो मैं लिख रहा हूं लेकिन कुछ हिस्सों में गायब हैं (TODOs)जीटीके + कंटेनर बच्चों को हटाएं, इसे दोबारा दोहराएं, फिर रीफ्रेश करें
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) –