Rechercher : dans
Par :

[Python] Supprimer un objet d'une Frame

Dernière réponse le 25 aoû 2006 à 16:35:48 Darshu, le 25 aoû 2006 à 14:34:03 
 Signaler ce message aux modérateurs

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.

T'as pensé à regarder sur Google avant de poser ta question ­? 

1

sebsauvage, le 25 aoû 2006 à 15:39:02

ça ne serait pas la méthode .destroy() ?

Répondre à sebsauvage

2

Darshu, le 25 aoû 2006 à 16:18:26

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 :)

T'as pensé à regarder sur Google avant de poser ta question ? 

Répondre à Darshu

3

 sebsauvage, le 25 aoû 2006 à 16:35:48

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):

Répondre à sebsauvage