Maison >développement back-end >Tutoriel Python >Que représentent les deux premiers arguments d'un rappel de trace de variable Tkinter ?
Python Tkinter propose une gamme de types de variables, tels que StringVar() et BooleanVar(), qui sont équipés de l'option méthode de trace. Cette méthode, lorsqu'elle est appelée avec un mode et une fonction de rappel, permet de surveiller les modifications apportées à la variable.
Cependant, la fonction de rappel passée à la méthode trace est appelée avec quatre arguments : self, n, m, X. Alors que x semble indiquer le mode qui a déclenché le rappel, les deux premiers arguments, n et m, restent souvent énigmatiques.
Dévoilement du premier argument
Le premier argument à la fonction de rappel se trouve le nom de la variable interne. Ce nom est généralement le nom attribué à la variable par l'utilisateur s'il est fourni (par exemple, StringVar(name='foo')). Sinon, Tkinter génère pour vous un nom comme « PYVAR0 ». Ce nom peut être utile en conjonction avec les méthodes tkinter getvar et setvar.
Exploration du deuxième argument
Pour les variables scalaires, le deuxième argument est toujours une chaîne vide. Cependant, si la variable est une variable de liste, m représente un index dans cette liste. C'est plutôt rare dans Tkinter.
La signification du troisième argument
Le troisième argument, x, signifie l'opération qui a déclenché le rappel et peut prendre les valeurs " lire", "écrire" ou "désactiver". Ces informations sont utiles si vous utilisez la même méthode pour diverses opérations (lecture, écriture ou suppression).
Il est important de noter que Tkinter est un wrapper Python autour d'un interpréteur Tcl/Tk. La documentation complète sur les traces de variables est disponible ici :
http://tcl.tk/man/tcl8.5/TclCmd/trace.htm#M14
La référence à cette documentation peut fournir des informations supplémentaires dans le fonctionnement interne des rappels de trace.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!