Bonjour,
dans un programme, je souhaiterais récupérer le contenu d'une entry et cela à chaque fois qu'une touche est pressée. J'ai donc créé une variable Tk de type StringVar() qui est la variable texte de l'entry:
De même, je réceptionne le contenu de l'entry à l'aide de la commande .get():
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 varTk = StringVar() mon_entry = Entry(fen_parent, textvariable =varTk)
Le souci est que la valeur enregistrée contient tout le contenu de l'entry sauf la dernière touche tapée. (exemple: j'ai tapé "azerty" et le contenu mémorisé est "azert" car le "y" est la dernière touche tapée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part varTk.get()
Je voulais donc savoir s'il existait une manière de mémoriser tout le contenu de l'entry (en "rafraîchissant" le contenu de l'entry par exemple).
Voici un bout de mon code:
Merci d'avance pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 # -*- coding: cp1252 -*- from Tkinter import * class NewEntry(Entry): """""" def __init__(self, boss =None): self.varTk = StringVar() Entry.__init__(self, textvariable =self.varTk, validate ='key', vcmd =self.verifClavier) self.bind('<Key>', func=self.quelleTouche) def quelleTouche(self, event): """Retiens la touche qui vient d'être tapée.""" self.touche =event self.configure(validate ='key', vcmd =self.verifClavier) #print "Le contenu de l'entry est:", self.varTk.get() def verifClavier(self): """Permet uniquement que l'utilisateur tape 1 chiffre dans les entry.""" try: self.touche #Si l'entryest modifiée sans avoir appuyé sur... except: return True #...une touche, on n'effectue pas la vérification if self.touche.char in '0123456789' or\ self.touche.keysym == 'BackSpace': print "Le contenu de l'entry est:", self.varTk.get() return True else: self.bell() return False #-----------------Si le programme est le programme principal:------------------- if __name__ == "__main__": fen = Tk() ent = NewEntry(boss =fen) ent.pack() fen.mainloop()
Partager