Wie man den Text des Tkinter-Eingabe-Widgets mit einer Schaltfläche einstellt

Jinku Hu 25 Juni 2020
  1. Tkinter delete und insert Methode, um den Inhalt von Entry zu setzen
  2. Tkinter StringVar Methode zum Setzen des Inhalts von Tkinter Entry Widget
Wie man den Text des Tkinter-Eingabe-Widgets mit einer Schaltfläche einstellt

Wir haben zwei Methoden, um den Text des Tkinter Entry Widgets durch Anklicken einer Schaltfläche zu setzen oder zu ändern,

  1. Tkinter löschen und einfügen Methode
  2. Tkinter StringVar Methode

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

Tkinter Set Inhalt von Tkinter Entry_delete und Insert-Methode

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.

Autor: 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

Verwandter Artikel - Tkinter Entry