Tkinter-учебник - Entry

  1. Пример ввода текста в Tkinter
  2. Tkinter Entry Text по умолчанию

Виджет Tkinter Entry позволяет пользователю вводить одну строку текста, которая имеет только один тип шрифта. Если требуется больше строк, необходимо использовать виджет Tkinter Text. Виджет Entry также может быть использован для отображения однострочного текста.

Пример ввода текста в Tkinter

Tkinter Entry_Basic.py
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.

Tkinter Tutorial_Entry Basic

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

comments powered by Disqus