tkinter
Виджет входа Tkinter
Поиск…
Синтаксис
- entry = tk.Entry ( родительский , ** kwargs )
- entry.get ()
- entry.insert (индекс, «значение»)
- entry.delete (start_index, end_index)
- entry.bind (событие, обратный вызов)
параметры
параметр | Описание |
---|---|
родитель | В hieararchy существуют виджеты tkinter. За исключением корневого окна, у всех виджетов есть родитель. Некоторые онлайн-уроки называют этот «мастер». Когда виджет будет добавлен на экран с pack , place или grid , он появится внутри этого родительского виджета |
ширина | Ширина определяет желаемую ширину виджета на основе средней ширины символа. Для шрифтов с переменной шириной это зависит от ширины нулевого символа ( 0 ). Значение по умолчанию - 20. Обратите внимание, что фактическая ширина может быть больше или меньше в зависимости от того, как она добавляется к экрану. |
замечания
В этих примерах предполагается, что tkinter был импортирован либо import tkinter as tk
(python 3), либо import Tkinter as tk
(python 2).
Создание виджета Entry и установка значения по умолчанию
entry = tk.Entry(parent, width=10)
entry.insert(0, "Hello, World!")
Получение значения виджета Entry
Значение виджета ввода можно получить с помощью метода get
виджета:
name_entry = tk.Entry(parent)
...
name = name_entry.get()
Необязательно, вы можете связать экземпляр StringVar
и получить значение из StringVar
а не из виджета:
name_var = tk.StringVar()
name_entry = tk.Entry(parent, textvariable=name_var)
...
name = name_var.get()
Добавление проверки на виджет ввода
Чтобы ограничить символы, которые можно ввести в виджет ввода, к записи могут быть добавлены только цифры, например, команда проверки. Команда validate - это функция, возвращающая True
если изменение принято, иначе False
. Эта функция будет вызываться каждый раз, когда содержимое записи будет изменено. К этой функции могут быть переданы различные аргументы, такие как тип изменения (вставка, удаление), вставленный текст, ...
def only_numbers(char):
return char.isdigit()
validation = parent.register(only_numbers)
entry = Entry(parent, validate="key", validatecommand=(validation, '%S'))
Параметр validate
определяет тип события, который запускает проверку, здесь это любое нажатие клавиши в записи. '%S'
в опции validatecommand означает, что вставленный или удаленный символ передается в аргументе функции only_numbers
. Полный список возможностей можно найти здесь .
Получение int From Entry Widget
При использовании метода .get () все, что находится в виджетах записи, будет преобразовано в строку. Например, независимо от типа ввода (это может быть число или предложение), итоговый результат будет строкой. Если пользователь вводит 4, выход будет «4», как в строке. Чтобы получить int из виджета входа, сначала вызовите метод .get ().
What_User_Wrote = Entry.get()
Теперь мы преобразуем эту строку в int так:
Convert_To_Int = int(What_User_Wrote)
Аналогичным образом, если вы хотите сэкономить время, вы можете просто сделать:
Convert_To_Int = int(Entry.get())
Вы можете использовать вышеуказанный метод, если вы не хотите преобразовывать str в int.