Comment obtenir les données de la boîte de texte Tkinter
- Exemple de code pour obtenir l’entrée du widget de texte de Tkinter
-
Exemple de code pour récupérer l’entrée sans
newline
à la fin du widget Tkinter Text
Le widget Tkinter Text a la méthode get()
pour retourner l’entrée de la boîte de texte, qui a un argument de position start
, et un argument optionnel de fin pour spécifier la position de fin du texte à lire.
get(start, end=None)
Si end
n’est pas donné, un seul caractère spécifié à la position start
sera renvoyé.
Exemple de code pour obtenir l’entrée du widget de texte de Tkinter
import tkinter as tk
root = tk.Tk()
root.geometry("400x240")
def getTextInput():
result = textExample.get("1.0", "end")
print(result)
textExample = tk.Text(root, height=10)
textExample.pack()
btnRead = tk.Button(root, height=1, width=10, text="Read", command=getTextInput)
btnRead.pack()
root.mainloop()
result = textExample.get("1.0", "end")
La position du premier caractère dans le widget Text
est 1.0
, et pourrait être désignée par un nombre 1.0
ou une chaîne "1.0"
.
"end"
signifie qu’il lit l’entrée jusqu’à la fin de la boîte Text
. Nous pourrions également utiliser tk.END
au lieu de la chaîne "end"
ici.
Le petit problème si nous spécifions "end"
comme position de fin du texte à retourner, il inclut également le caractère \n
de la nouvelle ligne à la fin de la chaîne de texte, comme vous avez pu le voir dans l’animation ci-dessus.
Nous pourrions changer l’argument "end"
de la méthode get
pour qu’il soit "end-1c"
si nous ne voulons pas que la nouvelle ligne soit dans l’entrée retournée.
"end-1c"
signifie que la position est un caractère avant "end"
.
Exemple de code pour récupérer l’entrée sans newline
à la fin du widget Tkinter Text
import tkinter as tk
root = tk.Tk()
root.geometry("400x240")
def getTextInput():
result = textExample.get(1.0, tk.END + "-1c")
print(result)
textExample = tk.Text(root, height=10)
textExample.pack()
btnRead = tk.Button(root, height=1, width=10, text="Read", command=getTextInput)
btnRead.pack()
root.mainloop()
Ici, nous pourrions également utiliser tk.END+"-1c"
en plus de "end-1c"
pour éliminer le dernier caractère - \n
, parce que tk.END = "end"
, donc tk.END+"-1c"
est égal à "end"+"-1c"="end-1c"
.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook