2013-04-03 11 views
19

Yeni içerikler yazılabilir (bilgi yenileme) ancak bunu başaramadığım için kırparak bir çerçeveyi temizlemeye çalışıyorum. Ben buPython Tkinter bir çerçeve temizleme

'un farkındayım, ancak frame.destroy() çerçeveyi tamamen kaldıracaktır. Ve diğer ikisi de bana istediğim sonucu veremedi. İhtiyacım olan şey sadece çerçevesindeki her öğeyi temizlemesi ama çerçevenin kendisi. Bunu yapmak için zaten var mı?

+2

görevine bağlı olarak çerçevede bir çerçeve oluşturabilir ve bunu yok edebilirim – User

cevap

15

pack_forget ve grid_forget yalnızca pencere öğelerini kaldırır, yok etmez. Widget'ları yeniden kullanmayı planlamıyorsanız, tek gerçek seçeneğiniz destroy yöntemiyle yok etmektir.

Bunu yapmak için iki seçeneğiniz vardır: her birini ayrı ayrı yok edin veya tüm çocuklarının yok olmasına neden olacak çerçeveyi yok edin. İkincisi genellikle en kolay ve en etkilidir.

Konteynır çerçevesini yok etmek istemediğinizi iddia ettiğiniz için, ikinci bir çerçeve oluşturun. Bu ikincil çerçeveyi silmek istediğiniz tüm widget'lar için kapsayıcıya sahip olun ve sonra bu çerçeveyi yapmayın, yok etmek istiyorsanız. Öyleyse, bu tek bir çerçeveyi yok etmek meselesi ve tüm içsel aletler onunla birlikte yok olacak.
yüksek (üst) en düşük (altta) kendi istifleme amacıyla, tüm W'nin çocukların bir listesini döndürür()

+0

Güncellemeyi her seferinde temizlemek istiyorum çerçevemi yeniden oluşturacak bir işlev oluşturarak sorunu çözmeyi başardım.Çok çok teşekkürler Yardımınız için Bryan, cevabınız bilgilendiriciydi. –

+0

@Chris Aung: Bu işlevi paylaşmayı düşünür müsün? Ben sadece bunun için arıyorum, çünkü kendi bir sebepten dolayı başarısız. – Zelphir

+0

Burada çalışan bir yöntem bulabilirsiniz: http://stackoverflow.com/a/15995920/1829329 – Zelphir