tkinter
Le widget d'entrée Tkinter
Recherche…
Syntaxe
- entry = tk.Entry ( parent , ** kwargs )
- entry.get ()
- entry.insert (index, "value")
- entry.delete (start_index, end_index)
- entry.bind (événement, rappel)
Paramètres
Paramètre | La description |
---|---|
parent | Les widgets tkinter existent dans une hiérarchie. À l'exception de la fenêtre racine, tous les widgets ont un parent. Certains didacticiels en ligne appellent ce "maître". Lorsque le widget est ajouté à l'écran avec le pack , le place ou la grid , il apparaîtra dans ce widget parent |
largeur | La largeur spécifie la largeur souhaitée du widget en fonction d'une largeur de caractère moyenne. Pour les polices de largeur variable, cela est basé sur la largeur du caractère zéro ( 0 ). La valeur par défaut est 20. Notez que la largeur réelle peut être plus grande ou plus petite selon la manière dont elle est ajoutée à l'écran. |
Remarques
Ces exemples supposent que tkinter a été importé avec import tkinter as tk
(python 3) ou import Tkinter as tk
(python 2).
Création d'un widget Entrée et définition d'une valeur par défaut
entry = tk.Entry(parent, width=10)
entry.insert(0, "Hello, World!")
Obtenir la valeur d'un widget Entrée
La valeur d'un widget d'entrée peut être obtenue avec la méthode get
du widget:
name_entry = tk.Entry(parent)
...
name = name_entry.get()
Vous pouvez éventuellement associer une instance de StringVar
et extraire la valeur de StringVar
plutôt que du widget:
name_var = tk.StringVar()
name_entry = tk.Entry(parent, textvariable=name_var)
...
name = name_var.get()
Ajout de validation à un widget Entrée
Pour limiter les caractères pouvant être saisis dans un widget de saisie, seuls les nombres, par exemple, une commande de validation peuvent être ajoutés à l'entrée. Une commande validate est une fonction qui renvoie True
si la modification est acceptée, False
sinon. Cette fonction sera appelée chaque fois que le contenu de l'entrée est modifié. Différents arguments peuvent être passés à cette fonction, comme le type de modification (insertion, suppression), le texte inséré, ...
def only_numbers(char):
return char.isdigit()
validation = parent.register(only_numbers)
entry = Entry(parent, validate="key", validatecommand=(validation, '%S'))
L'option validate
détermine le type d'événement qui déclenche la validation, ici, c'est une frappe quelconque dans l'entrée. Le '%S'
de l'option validatecommand signifie que le caractère inséré ou supprimé est passé en argument à la fonction only_numbers
. La liste complète des possibilités se trouve ici .
Obtenir à partir du widget d'entrée
Lorsque vous utilisez la méthode .get (), tout ce qui se trouve dans le widget d’entrée sera converti en chaîne. Par exemple, quel que soit le type d'entrée (il peut s'agir d'un nombre ou d'une phrase), le résultat sera une chaîne. Si l'utilisateur tape 4, la sortie sera "4" comme dans une chaîne. Pour obtenir un int à partir d'un widget de saisie, commencez par appeler la méthode .get ().
What_User_Wrote = Entry.get()
Maintenant, nous convertissons cette chaîne en un int comme ça:
Convert_To_Int = int(What_User_Wrote)
De même, si vous voulez gagner du temps, vous pouvez simplement faire:
Convert_To_Int = int(Entry.get())
Vous pouvez utiliser la méthode ci-dessus si vous ne voulez pas convertir str en int.