Bonsoir à tous,

Dans l'exercice ci-après, je souhaiterais obtenir le NOM du Widget qui a le focus mais je ne réussis à avoir que ce qui semble être une adresse.

L'idée est de pouvoir vérifier la réalité d'un 'float' aprés avoir autorisé le point et le signe moins en plus de 'isdigit'.

Est-il possible d'obtenir le NOM directement sans passer par l'index.

L.P.
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
37
38
39
40
41
42
43
44
45
from tkinter import *
 
def tabul(event):
    w=event.widget
    fen.event_generate('<Tab>')
 
def OnValidate(S):
    print(fen.focus_get()) # donne l'adresse mais pas le nom
    print( )
    if S.isdigit() :
        return True
    return False
 
# --------    
fen= Tk()
fen.title("validation FLOAT des Entry")
fen.protocol("WM_DELETE_WINDOW", fen.quit)
maFonte = "Comic_Sans_MS -14 bold"
 
# ---------------------------
validate_cmd = (fen.register(OnValidate), '%S')
 
e1 = Entry(fen, validate="key", vcmd=validate_cmd )
e1.bind("<Return>", tabul)
e1.pack()
 
e2 = Entry(fen, validate="key", vcmd=validate_cmd)
e2.bind("<Return>", tabul)
e2.pack()
 
e3 = Entry(fen, validate="key", vcmd=validate_cmd)
e3.bind("<Return>", tabul)
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_00.py