⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ liste des méthodes
tkinter.register ( )
⇨ MENU ⇨ MODULES ⇨ tkinter ⇨ liste des méthodes
tkinter.register ( )
DESCRIPTION.
Associe une fonction qui sera exécuter pour la valider une saisie de l’utilisateur dans un champ de saisies.
SYNTAXE.
REG_Valider = widget.register ( fonction )
REG_Valider = ⇨ identifiant de l'emballage tlc [ OBLIGATOIRE ]
widget ⇨ controle quelconque de l'interface [ OBLIGATOIRE ]
.register ( ) ⇨ appel de la méthode [ OBLIGATOIRE ]
fonction ⇨ fonction à exécuter [ OBLIGATOIRE ]
REMARQUES.
fonction doit être une fonction quelconque mais valide, définie dans le script par le programmeur.
fonction doit obligatoirement retourner True ou False, et seulement l'une de ces deux valeurs.
Bien souvent, les valeurs passées au programme par l'intermédiaire d'un champs de saisie doivent être à un certain format ou dans une plage définie. tkinter.Entry ( ) permet d'appeler une fonction de validité, grâce à ses attributs validate et validatecommand, afin de s'assurer que le programme pourra traiter convenablement les données fournies par l'utilisateur. La méthode tkinter.register ( ) va créer un emballage tlc pour Python, qui permettra de vérifier la valeur entrée, par l'utilisateur, dans un champ de saisie créé avec tkinter.Entry ( ), pour s'assurer que cette saisie est conforme aux besoins du programme.
Chaque fois que l'événement ("all", "focus", "focusin", "focusout", "key" ou "none") indiqué dans l'attribut validate d'un champ de saisie se produira, Python interrogera l'attribut validatecommand = ( emballage , *arguments ) de ce champ de saisie puis fonction sera invoquée, et selon les exigences du script, avec *arguments ("%d", "%i", "%P", "%s", "%S", "%v", "%V" et/ou "%W") comme arguments
fonction testera les données présentes dans *argument, et/ou effectuera d'autres traitements nécessaires pour autoriser la modification du champ de saisie.
Si fonction retourne True, les modifications, ayant déclenchées l'appel, seront autorisées et affichées. Avant de retourner True le script de fonction peut agir sur d'autres controles. Par exemple, en modifiant le texte d'une étiquette, donnant un résultat intermédiaire en fonction des caractères déjà dans les champ de saisie, ou qui s'y trouveront après la validation de la saisie.
Si fonction retourne False les modifications seront ignorées, et le champs de saisie ne sera pas changé. Avant de retourner False, le script de fonction peut agir sur d'autres controles, mais il est préférable d'utiliser l'attribut invalidatecommand pour exécuter une fonction indépendante, pour afficher un message pour préciser le type de saisie attendu, d'effacer les caractères frauduleux, de forcer une valeur pas défaut, pour assister l'utilisateur dans sa saisie par exemple.
Par convention, on utilise la fenêtre créée avec tkinter.Tk ( ) pour l'utilisation de cette méthode. Voir le controle standard tkinter.Entry ( ) pour plus d'informations.
EXEMPLE.
import tkinter
def FNC_Test ( Q ) :
if Q.isdigit ( ) :
LAB_Reponce [ "text" ] = f"Moitié = { int ( Q ) / 2 }\nDouble = { int ( Q ) * 2 }\nCarré = { int ( Q ) ** 2 }"
return True
else :
return False
def FNC_Message ( ) :
LAB_Reponce [ "text" ] = "ATTENTION !\nMauvaise\nsaisie !"
TKI_Principal = tkinter.Tk ( )
REG_Valide = TKI_Principal.register ( FNC_Test )
BUT_Quitter = tkinter.Button ( TKI_Principal , text = "Quitter" , command = TKI_Principal.destroy )
ENT_Texte = tkinter.Entry ( TKI_Principal , validate = "key" , validatecommand = ( REG_Valide , "%P" ) , invalidcommand = FNC_Message )
LAB_Reponce = tkinter.Label ( TKI_Principal , text = "Entrez un\nnombre\nentier" )
LAB_Reponce.pack ( )
ENT_Texte.pack ( )
BUT_Quitter.pack ( )
ENT_Texte.focus_force ( )
TKI_Principal.mainloop ( )
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de