[Python] Supprimer un objet d'une Frame

Résolu/Fermé
Darshu Messages postés 303 Date d'inscription lundi 30 janvier 2006 Statut Membre Dernière intervention 3 avril 2008 - 25 août 2006 à 14:34
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 - 25 août 2006 à 16:35
Bonjour.

Encore un problème en Python ! Avec Tkinter, j'instancie un objet de la classe Application, qui dérive de Frame. Avec une méthode, j'instancie plusieurs objets de la classe Pupitre, qui dérive de Frame également, avec comme référence de la fenêtre parente l'objet Application.

Seulement je voudrais pouvoir supprimer ces objets pupitres dans certains cas, mais il n'y a pas de méthode delete() comme pour un Canevas par exemple. Dès lors, comment est-ce que je peux faire pour supprimer ces objets ? Merci.

3 réponses

Darshu Messages postés 303 Date d'inscription lundi 30 janvier 2006 Statut Membre Dernière intervention 3 avril 2008 64
25 août 2006 à 16:18
Encore une fois, merci Seb :)

Petite question supplémentaire : sur un widget Scale, je veux lier sur "flèche droite" une action.

J'ai essayé différentes combinaisons comme regle.bind("<Right>",fonction), regle.bind("Right",fonction), regle.bind(<Right>,fonction), regle.bind(Right,fonction) ... mais aucune n'a fonctionné. Est-ce parce que la syntaxe est mauvaise ? J'ai vu qu'on pouvait utiliser la méthode bind à n'importe quel widget de Tkinter, est-ce alors lié à un mauvais appel dans ma fonction ?

Le widget Scale fait partie de ma classe Pupitre (la même qu'au dessus). Cette classe comprend un Scale, l'affichage d'un texte fixe, un Label et un Button.

Merci d'avance :)
3
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
25 août 2006 à 16:35
A priori le binding sur une touche ne fonctionnera pour un widget que s'il y a le focus dessus.

Certains widget sont capable de prendre un focus (zones de texte, boutons...) et pas d'autres (label...)
J'ignore si ton widget peut prendre un focus.

Sinon la syntaxe regle.bind("<Right>",fonction) est bonne.


(Dans un de mes programme, j'ai un bind sur la touche entrée dans une zone de texte:

self.entry = Tkinter.Entry(self.root,textvariable=t)
self.entry.bind("<Return>", self.EnterPressedInText)


et ma méthode est tout simplement définie comme ça:
def EnterPressedInText(self,event):
1
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
25 août 2006 à 15:39
ça ne serait pas la méthode .destroy() ?
0