HOWTO · Tkinter
Wie man den Text des Tkinter-Eingabe-Widgets mit einer Schaltfläche einstellt
Es hat zwei Methoden, um den Inhalt oder den Text des Tkinter Entry-Widgets festzulegen, eine ist die Kombination von delete- und insert-Methode des Tkinter Entry-Widgets, und die andere ist die Verwendung der StringVar-Variable.
Auf dieser Seite
Wir haben zwei Methoden, um den Text des Tkinter Entry Widgets durch Anklicken einer Schaltfläche zu setzen oder zu ändern,
- Tkinter
löschenundeinfügenMethode - Tkinter
StringVarMethode
Tkinter delete und insert Methode, um den Inhalt von Entry zu setzen
Das Tkinter Entry Widget hat keine spezielle set Methode, um den Inhalt des Entry zu setzen. Es muss zuerst den bestehenden Inhalt löschen und dann den neuen Inhalt einfügen, wenn wir den Inhalt komplett ändern müssen.
Vollständige Arbeitscodes zum Setzen von Text in Entry mit den Methoden delete und insert
import tkinter as tk
root = tk.Tk()
root.geometry("400x50")
def setTextInput(text):
textExample.delete(0, "end")
textExample.insert(0, text)
textExample = tk.Entry(root)
textExample.pack()
btnSet = tk.Button(
root, height=1, width=10, text="Set", command=lambda: setTextInput("new content")
)
btnSet.pack()
root.mainloop()
textExample.delete(0, "end")
Die Methode Löschen der Eingabe löscht den angegebenen Bereich von Zeichen in der Eingabe.
0 ist das erste Zeichen und "end" ist das letzte Zeichen des Inhalts im Entry-Widget. Daher löscht delete(0, "end") den gesamten Inhalt im Feld Entry.
textExample.insert(0, text)
Die Methode insert fügt den Text an der angegebenen Position ein. Im obigen Code fügt sie den text am Anfang ein.
Tkinter StringVar Methode zum Setzen des Inhalts von Tkinter Entry Widget
Wenn der Inhalt des Tkinter Entry-Widgets mit einem StringVar-Objekt verknüpft wurde, könnte es automatisch den Inhalt des Tkinter Entry-Widgets jedes Mal ändern, wenn der Wert von StringVar aktualisiert wird.
Vollständige Arbeitscodes zum Setzen von Text in Entry mit StringVar-Objekt
import tkinter as tk
root = tk.Tk()
root.geometry("400x50")
def setTextInput(text):
textEntry.set(text)
textEntry = tk.StringVar()
textExample = tk.Entry(root, textvariable=textEntry)
textExample.pack()
btnSet = tk.Button(
root, height=1, width=10, text="Set", command=lambda: setTextInput("new content")
)
btnSet.pack()
root.mainloop()
textEntry = tk.StringVar()
textExample = tk.Entry(root, textvariable=textEntry)
textEntry ist ein StringVar-Objekt und es ist mit dem Textinhalt verbunden, oder anders gesagt, mit der Option textvariable im Entry-Widget.
textEntry.set(text)
Wenn textEntry aktualisiert wird, um einen neuen Wert text zu erhalten, dann werden die Widgets, deren textvariable mit ihm assoziiert ist, automatisch aktualisiert.