Как задать текст виджета для ввода текста с помощью кнопки A

  1. Tkinter delete и insert Метод установки содержания Entry
  2. Tkinter StringVar Метод задания содержимого Tkinter Entry Widget

У нас есть два способа установить или изменить текст виджета Tkinter Entry, нажав на кнопку,

  1. Tkinter delete и insert метод
  2. Tkinter StringVar Метод

Tkinter delete и insert Метод установки содержания Entry

Виджет Tkinter Entry не имеет специального метода задания содержимого Entry. Сначала нужно удалить существующее содержимое, а затем вставить новое содержимое, если нужно полностью изменить содержимое.

Полные рабочие коды для установки текста в Entry с помощью методов delete и 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 задает содержимое метода ввода_удаления и вставки в кинтер

textExample.delete(0,"end")

Метод delete в Entry удаляет указанный диапазон символов в Entry.

0 - первый символ, а "end" - последний символ содержимого виджета Entry. Поэтому delete(0, "end") удаляет все содержимое внутри поля Text.

textExample.insert(0, text)

Метод insert вставляет текст в указанную позицию. В приведенном выше коде он вставляет текст в начало.

Tkinter StringVar Метод задания содержимого Tkinter Entry Widget

Если содержимое виджета Tkinter Entry ассоциировалось с объектом StringVar, то он мог автоматически изменять содержимое виджета Tkinter Entry при каждом обновлении значения StringVar.

Полные рабочие коды для установки текста в Entry с помощью объекта StringVar

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 является объектом StringVar и ассоциируется с текстовым содержимым, или, другими словами, с опцией textvariable в виджете Entry.

textEntry.set(text)

Если textEntry обновляется, чтобы иметь новое значение text, то виджеты, чья textvariable связана с ним, будут автоматически обновляться.

Сопутствующая статья - Tkinter Entry

  • Как установить стандартный текст виджета для ввода в кинетер
  • Как установить высоту и ширину виджета для входа в систему
  • comments powered by Disqus