Поиск…


Синтаксис

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



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow