Инструменты пользователя

Инструменты сайта


python:okonnoe_prilozhenie:tkinter:entry

Entry

Получение ввода с использованием класса Entry (текстовое поле Tkinter)

В предыдущих примерах GUI Python мы ознакомились со способами добавления простых виджетов, а теперь попробуем получить пользовательский ввод, используя класс Tkinter Entry (текстовое поле Tkinter). Вы можете создать текстовое поле с помощью класса Tkinter Entry следующим образом:

txt = Entry(window, width=10)

Затем вы можете добавить его в окно, используя функцию grid. Наше окно будет выглядеть так:

from tkinter import *  
 
 
def clicked():  
    lbl.configure(text="Я же просил...")  
 
 
window = Tk()  
window.title("Добро пожаловать в приложение PythonRu")  
window.geometry('400x250')  
lbl = Label(window, text="Привет")  
lbl.grid(column=0, row=0)  
txt = Entry(window,width=10)  
txt.grid(column=1, row=0)  
btn = Button(window, text="Не нажимать!", command=clicked)  
btn.grid(column=2, row=0)  
window.mainloop()

Полученный результат будет выглядеть так:

Теперь, если вы нажмете кнопку, она покажет то же самое старое сообщение, но что же будет с отображением введенного текста в виджет Entry?

Во-первых, вы можете получить текст ввода, используя функцию get. Мы можем записать код для выбранной функции таким образом:

def clicked():
    res = "Привет {}".format(txt.get())
    lbl.configure(text=res)

Если вы нажмете на кнопку — появится текст «Привет » вместе с введенным текстом в виджете записи. Вот полный код:

from tkinter import *  
 
 
def clicked():  
    res = "Привет {}".format(txt.get())  
    lbl.configure(text=res)  
 
 
window = Tk()  
window.title("Добро пожаловать в приложение PythonRu")  
window.geometry('400x250')  
lbl = Label(window, text="Привет")  
lbl.grid(column=0, row=0)  
txt = Entry(window,width=10)  
txt.grid(column=1, row=0)  
btn = Button(window, text="Клик!", command=clicked)  
btn.grid(column=2, row=0)  
window.mainloop()

Запустите вышеуказанный код и проверьте результат:

Установка фокуса виджета ввода

Здесь все очень просто, ведь все, что нам нужно сделать, — это вызвать функцию focus:

txt.focus()

Когда вы запустите свой код, вы заметите, что виджет ввода в фокусе, который дает возможность сразу написать текст.

Отключить виджет ввода

Чтобы отключить виджет ввода, отключите свойство состояния:

txt = Entry(window,width=10, state='disabled')

Теперь вы не сможете ввести какой-либо текст.

Параметр show

Для ввода пароля, можно вместо вводимых символов подставлять зведочки или любые другие символы

from tkinter import *
 
def addStr():
    ent.insert(END, 'hello')
 
def delStr():
    ent.delete(0, END)
 
def getStr():
    str = f'Ваш loginL: {ent.get()}; Ваш пароль {ent2.get()}'
    text_custom['text'] = str
 
root = Tk()
 
root.geometry('500x300')
 
l = Label(root, text='Введите логин: ')
l.pack()
ent = Entry(root)
ent.pack()
 
l2 = Label(root, text='Введите пароль: ')
l2.pack()
ent2 = Entry(root, show='*')
ent2.pack()
 
btt_add = Button(root, text='add', command=addStr).pack()
btt_del = Button(root, text='del', command=delStr).pack()
btt_get = Button(root, text='get', command=getStr).pack()
 
text_custom = Label(root)
text_custom.pack()
 
 
root.mainloop()

Параметры

Sr.No.Опции и Описание
1bg
Обычный цвет фона отображается за меткой и индикатором.
2bd
Размер границы вокруг индикатора. По умолчанию 2 пикселя.
3command
Процедура, вызываемая каждый раз, когда пользователь меняет состояние этой кнопки.
4cursor
Если вы установите эту опцию (arrow, dot etc.), курсор мыши меняется, когда он находится над кнопкой.
5font
Шрифт, используемый для текста.
6exportselection
По умолчанию, если вы выбираете текст в виджете «Entry», он автоматически экспортируется в буфер обмена. Чтобы избежать этого экспорта, используйте exportselection = 0.
7fg
Цвет, используемый для визуализации текста.
8highlightcolor
Цвет фокуса выделяется, когда кнопка имеет фокус.
9justify
Если текст содержит несколько строк, этот параметр управляет выравниванием текста: CENTER, LEFT, или RIGHT.
10relief
Значение п умолчанию, relief = FLAT, кнопка не выделяется на фоне. Вы можете установить эту опцию на любой из других стилей
11selectbackground
Цвет фона для отображения выбранного текста.
12selectborderwidth
Ширина границы, используемой вокруг выделенного текста. По умолчанию используется один пиксель.
13selectforeground
Цвет переднего плана (текста) выделенного текста.
14show
Обычно символы, которые вводит пользователь, появляются в записи. Чтобы сделать пароль. запись, которая отображает каждый символ в виде звездочки, установите show = '*'.
15state
По умолчанию state = NORMAL, но вы можете установить state = DISABLED тем сделал поле неактивным. Если курсор в данный момент находится над полем, state = ACTIVE.
16textvariable
Чтобы иметь возможность получить текущий текст из виджета ввода, необходимо установить для этой опции экземпляр класса StringVar.
17width
Ширина кнопки по умолчанию определяется размером отображаемого изображения или текста. Вы можете установить эту опцию на количество символов, и кнопка-флажок всегда будет иметь место для такого количества символов.
18xscrollcommand \\Если вы ожидаете, что пользователи будут часто вводить больше текста, чем размер виджета на экране, вы можете связать свой виджет ввода с полосой прокрутки.

Методы

Ниже приведены часто используемые методы для этого виджета

Sr.No.Методы и описание
1delete ( first, last = None )
Удаляет символы из виджета, начиная с первого в индексе, вплоть до, но не включая символ в последней позиции. Если второй аргумент опущен, удаляется только один символ в первой позиции.
2get()
Возвращает текущий текст записи в виде строки.
3icursor ( index )
Установит курсор непосредственно перед символом по указанному индексу.
4index ( index )
Сдвиньте содержимое записи, чтобы символ с указанным индексом был самым левым видимым символом. Не имеет никакого эффекта, если текст полностью помещается в записи.
5insert ( index, s )
Вставляет строку s перед символом по указанному индексу.
6select_adjust ( index )
Этот метод используется, чтобы убедиться, что выбор включает символ по указанному индексу.
7select_clear()
Очищает выбор. Если в настоящее время нет выбора, не имеет никакого эффекта.
8select_from ( index )
Устанавливает позицию индекса ANCHOR для символа, выбранного индексом, и выбирает этот символ.
9select_present()
Если есть выборка, возвращает true, иначе возвращает false.
10select_range ( start, end )
Устанавливает выбор под управлением программы. Выбирает текст, начинающийся с начального индекса, вплоть до, но не включая символ в конечном индексе. Начальная позиция должна быть перед конечной позицией.
11select_to ( index )
Выбирает весь текст от заданной позиции, но не включая символ с данным индексом.
12xview ( index )
Этот метод полезен при связывании виджета Entry с горизонтальной полосой прокрутки.
13xview_scroll ( number, what )
Используется для прокрутки записи по горизонтали. Аргумент what должен быть UNITS для прокрутки по ширине символов или PAGES для прокрутки по кусочкам размера виджета ввода. Число положительное для прокрутки слева направо, отрицательное для прокрутки справа налево.
python/okonnoe_prilozhenie/tkinter/entry.txt · Последние изменения: 2023/01/12 12:18 (внешнее изменение)