Comment obtenir les données de la boîte de texte Tkinter

  1. Exemple de code pour obtenir l’entrée du widget de texte de Tkinter
  2. 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.

Tkinter obtient la boîte de texte Input_Inculde nouvelle ligne

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()

Tkinter obtient la boîte de texte Input_Not Inculde nouvelle ligne

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".

Article connexe - Tkinter Text

  • Comment définir la police de caractères du widget de texte Tkinter