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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| from tkinter import *
def tabul(event):
w=event.widget
fen.event_generate('<Tab>')
def touche(event):
w=event.widget
w.config(validate="key")
w.car=event.char ; print('w',w.car, event.char)
print(w.get())
def OnValidate(S):
w=fen.focus_get() ; print(fen.focus_get()) # donne le nom
# w.config(validate="key")
print(w.get()+ S ) # donne le contenu de l'Entry
# print()
if S.isdigit() or S in ".-" :
if len(w.get()) == 0 and S == '-':
print('len w:',len(w.get()))
return True
else:
try:
float(w.get() + S)
return True
except:
return False
return False
# --------
fen= Tk()
fen.title("validation FLOAT des Entry")
fen.protocol("WM_DELETE_WINDOW", fen.quit)
maFonte = "Comic_Sans_MS -14 bold"
# --------
ve1, ve2, ve3 = StringVar(),StringVar(),StringVar()
# ---------------------------
validate_cmd = (fen.register(OnValidate), '%S')
e1 = Entry(fen, textvariable=ve1, validate="key", name='e1', vcmd=validate_cmd )
e1.bind("<Return>", tabul)
e1.bind("<Key>", touche)
e1.car=''
e1.pack()
e2 = Entry(fen, textvariable=ve2, validate="key", name='e2', vcmd=validate_cmd)
e2.bind("<Return>", tabul)
e2.bind("<Key>", touche)
e2.car=''
e2.pack()
e3 = Entry(fen, textvariable=ve3, validate="key", name='e3', vcmd=validate_cmd)
e3.bind("<Return>", tabul)
e3.bind("<Key>", touche)
e3.car=''
e3.pack()
e1.focus_set()
# ----------
etq1=Label(fen, width=20, text='', bg='light blue'); etq1.pack(pady=10)
# ----------
Button(fen, font=maFonte, text="QUITTER",
command=fen.quit).pack(pady=20)
# ------------ boucle
fen.mainloop()
fen.destroy()
# fichier valid_isdigit_01.py |
Partager