Оглавление:
Карта сайта:
Оглавление:
Карта сайта:
В предыдущих примерах 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')
Теперь вы не сможете ввести какой-либо текст.
Для ввода пароля, можно вместо вводимых символов подставлять зведочки или любые другие символы
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. | Опции и Описание |
|---|---|
| 1 | bg Обычный цвет фона отображается за меткой и индикатором. |
| 2 | bd Размер границы вокруг индикатора. По умолчанию 2 пикселя. |
| 3 | command Процедура, вызываемая каждый раз, когда пользователь меняет состояние этой кнопки. |
| 4 | cursor Если вы установите эту опцию (arrow, dot etc.), курсор мыши меняется, когда он находится над кнопкой. |
| 5 | font Шрифт, используемый для текста. |
| 6 | exportselection По умолчанию, если вы выбираете текст в виджете «Entry», он автоматически экспортируется в буфер обмена. Чтобы избежать этого экспорта, используйте exportselection = 0. |
| 7 | fg Цвет, используемый для визуализации текста. |
| 8 | highlightcolor Цвет фокуса выделяется, когда кнопка имеет фокус. |
| 9 | justify Если текст содержит несколько строк, этот параметр управляет выравниванием текста: CENTER, LEFT, или RIGHT. |
| 10 | relief Значение п умолчанию, relief = FLAT, кнопка не выделяется на фоне. Вы можете установить эту опцию на любой из других стилей |
| 11 | selectbackground Цвет фона для отображения выбранного текста. |
| 12 | selectborderwidth Ширина границы, используемой вокруг выделенного текста. По умолчанию используется один пиксель. |
| 13 | selectforeground Цвет переднего плана (текста) выделенного текста. |
| 14 | show Обычно символы, которые вводит пользователь, появляются в записи. Чтобы сделать пароль. запись, которая отображает каждый символ в виде звездочки, установите show = '*'. |
| 15 | state По умолчанию state = NORMAL, но вы можете установить state = DISABLED тем сделал поле неактивным. Если курсор в данный момент находится над полем, state = ACTIVE. |
| 16 | textvariable Чтобы иметь возможность получить текущий текст из виджета ввода, необходимо установить для этой опции экземпляр класса StringVar. |
| 17 | width Ширина кнопки по умолчанию определяется размером отображаемого изображения или текста. Вы можете установить эту опцию на количество символов, и кнопка-флажок всегда будет иметь место для такого количества символов. |
| 18 | xscrollcommand \\Если вы ожидаете, что пользователи будут часто вводить больше текста, чем размер виджета на экране, вы можете связать свой виджет ввода с полосой прокрутки. |
Ниже приведены часто используемые методы для этого виджета
| Sr.No. | Методы и описание |
|---|---|
| 1 | delete ( first, last = None ) Удаляет символы из виджета, начиная с первого в индексе, вплоть до, но не включая символ в последней позиции. Если второй аргумент опущен, удаляется только один символ в первой позиции. |
| 2 | get() Возвращает текущий текст записи в виде строки. |
| 3 | icursor ( index ) Установит курсор непосредственно перед символом по указанному индексу. |
| 4 | index ( index ) Сдвиньте содержимое записи, чтобы символ с указанным индексом был самым левым видимым символом. Не имеет никакого эффекта, если текст полностью помещается в записи. |
| 5 | insert ( index, s ) Вставляет строку s перед символом по указанному индексу. |
| 6 | select_adjust ( index ) Этот метод используется, чтобы убедиться, что выбор включает символ по указанному индексу. |
| 7 | select_clear() Очищает выбор. Если в настоящее время нет выбора, не имеет никакого эффекта. |
| 8 | select_from ( index ) Устанавливает позицию индекса ANCHOR для символа, выбранного индексом, и выбирает этот символ. |
| 9 | select_present() Если есть выборка, возвращает true, иначе возвращает false. |
| 10 | select_range ( start, end ) Устанавливает выбор под управлением программы. Выбирает текст, начинающийся с начального индекса, вплоть до, но не включая символ в конечном индексе. Начальная позиция должна быть перед конечной позицией. |
| 11 | select_to ( index ) Выбирает весь текст от заданной позиции, но не включая символ с данным индексом. |
| 12 | xview ( index ) Этот метод полезен при связывании виджета Entry с горизонтальной полосой прокрутки. |
| 13 | xview_scroll ( number, what ) Используется для прокрутки записи по горизонтали. Аргумент what должен быть UNITS для прокрутки по ширине символов или PAGES для прокрутки по кусочкам размера виджета ввода. Число положительное для прокрутки слева направо, отрицательное для прокрутки справа налево. |