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

Jinku Hu 30 janvier 2023
  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
Comment obtenir les données de la boîte de texte Tkinter

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

Auteur: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

Article connexe - Tkinter Text