Пример 2.
li = ["red","green"]
def color(event):
fra.configure(bg=li[0])
li[0],li[1] = li[1],li[0]
def outgo(event):
root.destroy()
from tkinter import *
root = Tk()
fra = Frame(root,width=100,height=100)
but = Button(root,text="Выход")
fra.pack()
but.pack()
root.bind("<Return>",color)
but.bind("<Button-1>",outgo)
root.mainloop()
Здесь создаются два виджета (строки 12, 13): фрейм и кнопка.
Приложение реагирует на два события: нажатие клавиши Enter в пределах главного окна (строка 18) и нажатие левой кнопкой мыши по кнопке but (строка 19). В первом случае вызывается функция color, во втором — outgo.
Функция color изменяет цвет фона (bg) фрейма (fra) с помощью метода configure, который предназначен для изменения значения свойств виджетов в процессе выполнения скрипта. В качестве значения опции bg подставляется первый элемент списка. Затем в списке два элемента меняются местами, чтобы при следующем нажатии Enter цвет фрейма снова изменился.
В функции outgo вызывается метод destroy по отношению к главному окну. Данный метод предназначен для «разрушения» виджета (окно закроется).
Практическая работа
- Создайте приложение, в котором меняется размер фрейма в зависимости от того, какая из трех объектов-кнопок была нажата.
- Напишите скрипт, генерирующий окно с меткой и текстовым полем. После ввода пользователем текста в поле и нажатия Enter, введенный текст должен отображаться в метке.
Программирование событий в Tkinter. Урок 8
Методическая разработка урока
Элективный курс: Модуль tkinter. Создание графического интерфейса пользователя с помощью языка программирования Python
Уровень: Программирование для начинающих
Обычно, чтобы графическое приложение что-то сделало, должно случиться какое-нибудь событие, т. е. воздействие на GUI из вне.