Построение GUI. Tkinter
Долг за прошлую лекцию: mainloop в игровой программе
Tkinter
- событийное программирование со скрытым mainloop
root.mainloop()
- привязка обработчиков событий
toplevel и связь с Tcl/Tk
- Виджеты:
button, entry, listbox, checkbutton, radiobutton, …
menubutton, optionmenu, …
Задание свойств. obj.configure(opt=val) vs. obj["opt"]=val
Компоновка
- Виджет = окно = прямоугольник
- размещение — явное или относительное?
grid vs pack vs place
- grid как таблица: строки, столбцы, ячейки
- выравнивание/прилиапние
эластичность строк/столбцов (weight), grid-config
Работа с TopLevel
⇒ frame и labelframe
Регистрация обработчиков
- «событие по умолчанию» для button
- подбрасывание события по таймеру (не-tkinter-овскому)
Удобное
Д/З
- программа на tkinter
- окошко ввода первого члена последовательности
$$a_{n+1} = a_n/2$$ если $$a$$ чётно $$a_{n+1} = 3a_n+1$$, если $$a$$ нечётно
- генерирует N раз в секунду очередной член этой последоватлености
- Имеет кнопку «стоп»
- окошко ввода первого члена последовательности