Привет всем! Сегодня, как и обещал — продолжим изучение библиотеки Tkinter — что это, зачем это (создана она специально для создания интерфейсов). Кстати, первая часть доступна по ссылке 😉 А пока — поехали!
1. Давайте разберемся, как можно создать окно для ввода данных. Для этого используем конструкцию:
-
text_widget = Entry(window,width=10)
Важно — не забываем добавлять координаты для нахождения виджета — без них он показываться не будет. Т.е. в полном виде наш код будет выглядеть так:
-
text_widget = Entry(window,width=10)
-
text_widget.grid(column=2, row=0)
А вообще наш код к текущему моменту выглядит следующим образом (не забывайте читать комментарии к коду — там все понятно вроде как):
-
from tkinter import * #Подключили библиотеку
-
-
def clicked(): #Функция реакции на нажатие кнопки 'Нажми меня!'
-
label_widget.configure(text='Кнопка была нажата!')
-
-
def exit(): #Функция реакции на нажатие кнопки 'Exit'
-
print('Завершение программы')
-
quit()
-
-
window = Tk()
-
window.geometry('450x200') #Где первый параметр - ширина, а второй - высота.
-
window.resizable(0, 0) #Используем этот код, если нам нужно отключить возможность изменения размеров окна пользователем
-
window.title('Заголовок окна') #Обозначили заголовок окна
-
-
label_widget = Label(window, text='Текст метки', font=('Arial Bold', 12)) #Создали виджет метки с текстом
-
label_widget.grid(column=0, row=0) #Добавили сетку. ВАЖНО: без сетки - виджет не появится :)
-
-
#button = Button(window, text='Нажми меня!') #Создали кнопку, обозначили текст на кнопке
-
button = Button(window, text='Нажми меня!', bg="orange", fg="red", command=clicked) #Кнопка с указанными свойствами цвета текста на кнопке и самой кнопки
-
button.grid(column=1, row=0) #Указание координат местоположения кнопки
-
-
button_exit = Button(window, text = 'Exit', bg = 'red', command = exit) #Кнопка закрытия приложения
-
button_exit.grid(column=0, row=1) #Указание координат местоположения кнопки
-
-
text_widget = Entry(window,width=20) #Создали виджет для ввода информации
-
text_widget.grid(column=2, row=0) #Указали координаты местоположения виджета
-
-
window.mainloop() #Подключили функцию, создающую бесконечный цикл, который заставляет окно ждать любого действия пользователя. ВАЖНО: если мы забудем создать эту функцию - окно у нас так и не появится :)
Визуально наше приложение выглядит следующим образом:
2. Окно создали… теперь давайте разберемся, как получить данные из этого окна. Для этого нам понадобиться конструкция:
-
text_widget.get() #т.е. берем данные из окна
Саму конструкцию добавляем в функцию, которая отвечает за реакцию по клику на кнопку. В полном виде код приобретает следующий вид:
-
def clicked(): #Создаем функцию, отвечающую за реакцию на клик кнопки
-
result = 'Мы ввели в поле текст:' + text_widget.get() #Создали переменную, содержащую общий текст + текст, который введен в поле для ввода информации
-
label_widget.configure(text=result) #Меняем значение текстового виджета
Визуально все выглядит следующим образом:
До нажатия на кнопку:
3. Кстати, имеется встроенная возможность установить курсор в нужное поле сразу, по-умолчанию. Для этого используем:
-
text_widget.focus()
Как видите — очень просто, и крайне эффективно 😉
4. Иногда нужно деактивировать виджет, но оставить его в приложении. Для этого используется следующая конструкция:
-
text_widget = Entry(window,width=10, state='disabled')
Т.е. виджет у нас есть, он полностью прописан — но не активен. Выглядит это следующим образом:
5. Создание виджета выпадающего списка с помощью Tkinter. Для этого нам нужно подключить дополнительный модуль из библиотеки Tkinter:
-
from tkinter.ttk import *
А теперь создадим выпадающий список:
-
list_down = Combobox(window) #Создали выпадающий список, указали - где он будет вообще
-
list_down['values']= (1, 2, 3, 4, 5, "Text") #Указали значения, которые будут в выпадающем списке
-
list_down.current(4) #set the selected item #Указали значение "По-умолчанию" - важно не забывать, что отсчет в Python идет с нуля ;) т.е. в данном случае значением "по-умолчанию" будет цифра 5.
-
list_down.grid(column=0, row=0) #Указали местоположение выпадающего списка
Визуально выпадающий список выглядит следующим образом:
И да — что бы получить значение, которое было выбрано из выпадающего списка — используем конструкцию:
-
list_down.get()
На сегодня по вопросу «Tkinter — что это» — достаточно 🙂
Завтра, надеюсь, закончим краткое знакомство с этой библиотекой. Впереди знакомство с методикой создания радио-кнопок, чек-боксов, окон уведомлений, и многое другое 😉 Подпишитесь на мой канал в Telegram!
Вопрос? Пишите на почту 🙂