Как задать текст виджета для ввода текста с помощью кнопки A
-
Tkinter
delete
иinsert
Метод установки содержанияEntry
-
Tkinter
StringVar
Метод задания содержимого TkinterEntry
Widget
У нас есть два способа установить или изменить текст виджета Tkinter Entry, нажав на кнопку,
- Tkinter
delete
иinsert
метод - 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()
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
связана с ним, будут автоматически обновляться.