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