[Python] Supprimer un objet d'une Frame

Résolu
Darshu Messages postés 303 Date d'inscription   Statut Membre Dernière intervention   -  
sebsauvage Messages postés 32893 Date d'inscription   Statut Modérateur Dernière intervention   -
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.
A voir également:

3 réponses

Darshu Messages postés 303 Date d'inscription   Statut Membre Dernière intervention   64
 
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   Statut Modérateur Dernière intervention   15 662
 
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   Statut Modérateur Dernière intervention   15 662
 
ça ne serait pas la méthode .destroy() ?
0