Tkinter-учебник - Entry
Виджет Tkinter Entry
позволяет пользователю вводить одну строку текста, которая имеет только один тип шрифта. Если требуется больше строк, необходимо использовать виджет Tkinter Text
. Виджет Entry
также может быть использован для отображения однострочного текста.
Пример ввода текста в Tkinter
import tkinter as tk
from tkinter import ttk
def callbackFunc():
resultString.set("{} - {}".format(landString.get(),
cityString.get()))
app = tk.Tk()
app.geometry('200x100')
labelLand = tk.Label(app,
text = "Country")
labelLand.grid(column=0, row=0, sticky=tk.W)
labelCity = tk.Label(app,
text = "City")
labelCity.grid(column=0, row=1, sticky=tk.W)
landString = tk.StringVar()
cityString = tk.StringVar()
entryLand = tk.Entry(app, width=20, textvariable=landString)
entryCity = tk.Entry(app, width=20, textvariable=cityString)
entryLand.grid(column=1, row=0, padx=10)
entryCity.grid(column=1, row=1, padx=10)
resultButton = tk.Button(app, text = 'Get Result',
command=callbackFunc)
resultButton.grid(column=0, row=2, pady=10, sticky=tk.W)
resultString=tk.StringVar()
resultLabel = tk.Label(app, textvariable=resultString)
resultLabel.grid(column=1, row=2, padx=10, sticky=tk.W)
app.mainloop()
Этот пример кода создает GUI, в который пользователь может ввести название страны и города, а затем отображает введенную информацию после нажатия кнопки Get Result
.
entryLand = tk.Entry(app, width=20, textvariable=landString)
Он создает один экземпляр виджета Tkinter Entry
шириной 20 символов. Он может отображать только 20 символов в поле ввода, поэтому необходимо использовать клавиши со стрелками для отображения остальной части строки, если текстовая строка содержит более 20 символов.
Текст виджета ввода присваивается строковой переменной Tkinter landString
. Текст можно получить методом landString.get()
, а текст установить методом landString.set()
. Текст в поле ввода обновляется автоматически при использовании метода set()
.
Кроме метода get()
метода StringVar
, для получения строки в окне Entry
также можно использовать метод get()
объекта виджета Entry
.
Tkinter Entry Text по умолчанию
У нас есть два способа установить текст по умолчанию Entry
,
set()
Метод для установки Tkinter Entry
Текст по умолчанию
Как было указано в примере выше, можно использовать метод set()
StringVar
для установки текста по умолчанию Tkinter Entry
.
Например,
landString.set("Netherlands")
Он установит текст по умолчанию как Нидерланды
.
insert()
Метод для установки Tkinter Entry
Текст по умолчанию
Метод insert(index, string)
вставляет текст string
в заданную позицию index
. А если index
является END
, то он добавляет текст в виджет Entry
.
entryLand.insert(tk.END, "Netherlands")
Он устанавливает текст по умолчанию как Нидерланды
.
Если index
больше длины существующей строки в виджете, то она равна insert(END, string)
.