Comment supprimer tous les éléments enfants?
Je suis d'écriture basé sur l'interface du programme à l'aide de Python tkinter
de la bibliothèque. Je suis confronté à un problème: j'ai besoin de supprimer tous enfants éléments (sans suppression d'un élément parent, qui dans mon cas est colorsFrame
).
Mon code:
infoFrame = Frame(toolsFrame, height = 50, bd = 5, bg = 'white')
colorsFrame = Frame(toolsFrame)
# adding some elements
infoFrame.pack(side = 'top', fill = 'both')
colorsFrame.pack(side = 'top', fill = 'both')
# set the clear button
Button(buttonsFrame, text = "Clear area",
command = self.clearArea).place(x = 280, y = 10, height = 30)
Comment puis-je y parvenir?
OriginalL'auteur Roman Nazarkin | 2013-04-14
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
winfo_children
pour obtenir une liste de tous les enfants d'un widget en particulier, que vous pouvez ensuite effectuer une itération sur:infoFrame
bloc reste le même qu'avec les enfants blocs avant de les supprimer. Savoir comment résoudre le problème?la réponse courte, c'est que lorsque vous détruisez tous les enfants des widgets, pack ne pense plus qu'il est "propriétaire" de la fenêtre car il n'y a pas d'enfants à gérer. De ce fait, il n'a pas essayé de redimensionner la fenêtre. Un travail simple, autour de est pack un petit 1x1 image dans la fenêtre temporairement, à cause de pack pour redimensionner le cadre.
Ok, merci beaucoup!
Pour moi, cette méthode ne semble pas fonctionner, ou plutôt semble corrompu le cadre. Après, je reçois une erreur lorsque vous essayez d'ajouter des widgets à nouveau comme ceci:
widget.grid(in_=self.frame, sticky=sticky, row=0, column=0)
L'erreur est la suivante:_tkinter.TclError: bad window path name <random cryptic numbers here>
savez-vous comment résoudre ce problème?Tant pis, j'ai trouvé l'erreur que j'ai faite. Cette méthode fonctionne. Juste être sûr de ne pas créer un widget et les paramètres de son maître à l'image que vous souhaitez effacer, avant d'effacer cette image. Sinon, vous allez détruire le widget et il ne sera pas addable à l'image.
OriginalL'auteur Bryan Oakley