Привет всем! Сегодня, как и обещал — продолжим изучение библиотеки 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!
Вопрос? Пишите на почту 🙂
Support the Blog!
Running a blog takes a lot of effort, time, and passion. Your donations help improve the content, inspire new ideas, and keep the project going.
If you’ve enjoyed the blog’s materials, any support would mean the world to me. Thank you for being here! ❤️