Слайд 2import Tkinter
from Tkinter import *
![import Tkinter from Tkinter import *](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/410243/slide-1.jpg)
Слайд 3Widgets
label
button
entry
text
menu
canvas
widget=Widgetclass(master, option=value, ...)
![Widgets label button entry text menu canvas widget=Widgetclass(master, option=value, ...)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/410243/slide-2.jpg)
Слайд 5Основные методы виджетов
config(option=value, ...) - изменить опции
config() → dict – информация об
![Основные методы виджетов config(option=value, ...) - изменить опции config() → dict –](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/410243/slide-4.jpg)
опциях
cget(option) – возвращает текущее значение опции
bind(event, handler) – привязать определенное действие к определенному событию виджета
grid(options), pack(options) – менеджеры расположения
Слайд 6Опции виджетов
Общие
Размер
Фон
Цвет и стиль текста
Наличие и тип границы
Тип курсора
enabled/disabled
и т.д.
Специфические
![Опции виджетов Общие Размер Фон Цвет и стиль текста Наличие и тип](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/410243/slide-5.jpg)
Слайд 7Label
Текст / картинка
label = Label(master, text=”Text”)
Опции:
text
image
width, height
textvariable (типа StringVar)
и т.д.
![Label Текст / картинка label = Label(master, text=”Text”) Опции: text image width,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/410243/slide-6.jpg)
Слайд 8Button
b = Button(master, option=value, ...)
![Button b = Button(master, option=value, ...)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/410243/slide-7.jpg)
Слайд 9Button
b = Button(master, option=value, ..., command=callback)
![Button b = Button(master, option=value, ..., command=callback)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/410243/slide-8.jpg)
Слайд 10Listbox
insert(index,items)
delete(item) / delete(first,last)
get(index) → string
get(first,last) → list – список вариантов
select_set(index) / select_set(first,last)
select_includes(index)
![Listbox insert(index,items) delete(item) / delete(first,last) get(index) → string get(first,last) → list –](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/410243/slide-9.jpg)
→ boolean
curselection() → list of indexes – выбранные варианты
select_clear()
Слайд 11Frame
Frame = Frame(master, option=value, ...)
Помогает группировать другие виджеты
![Frame Frame = Frame(master, option=value, ...) Помогает группировать другие виджеты](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/410243/slide-10.jpg)
Слайд 12Entry
get() → string (получить содержимое поля)
![Entry get() → string (получить содержимое поля)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/410243/slide-11.jpg)
Слайд 15Canvas
Рисунки, графики, диаграммы...
Создаются элементы виджета, которые на нем размещаются
arc
bitmap
image
line
oval
polygon
rectangle
text
window – как контейнер
![Canvas Рисунки, графики, диаграммы... Создаются элементы виджета, которые на нем размещаются arc](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/410243/slide-14.jpg)
для других виджетов, располагаемых поверх canvas
Слайд 16Canvas
itemcget(item, option) → string – значение опции
itemconfig(item, options)
create_название_элемента(options) → id
delete(items)
lift(item)
lower(item)
![Canvas itemcget(item, option) → string – значение опции itemconfig(item, options) create_название_элемента(options) → id delete(items) lift(item) lower(item)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/410243/slide-15.jpg)
Слайд 19Pack
pack(option=value, …)
pack_configure(option=value, …)
pack_forget()
pack_info() → dict – словарь с имеющимися опциями
side (TOP, BOTTOM,
![Pack pack(option=value, …) pack_configure(option=value, …) pack_forget() pack_info() → dict – словарь с](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/410243/slide-18.jpg)
LEFT, RIGHT)
fill (X, Y, BOTH)
Слайд 23Grid
Создает таблицу
Метод grid, вызванный у виджетов, задает расположение в таблице
widget.grid(column=1,row=1)
Пустые строки и
![Grid Создает таблицу Метод grid, вызванный у виджетов, задает расположение в таблице](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/410243/slide-22.jpg)
столбцы игнорируются
По умолчанию виджеты в ячейках центрируются
Слайд 24Grid
grid_configure(option=value, …)
grid_forget() / grid_remove()
grid_info() → dict – словарь имеющихся опций
![Grid grid_configure(option=value, …) grid_forget() / grid_remove() grid_info() → dict – словарь имеющихся опций](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/410243/slide-23.jpg)
Слайд 25Scrollbar
Для Listbox, Text, Canvas, Entry
![Scrollbar Для Listbox, Text, Canvas, Entry](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/410243/slide-24.jpg)
Слайд 26Связывание (bind)
Связь между виджетом, событием и действием
widget.bind(event, handler)
![Связывание (bind) Связь между виджетом, событием и действием widget.bind(event, handler)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/410243/slide-25.jpg)
Слайд 27События
= = <1>
Нажатие на кнопку мыши
<1> - левая кнопка, <2>
![События = = Нажатие на кнопку мыши - левая кнопка, - средняя,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/410243/slide-26.jpg)
- средняя, <3> - правая
event.x, event.y – положение курсора
Перемещение мышки при нажатой кнопке
event.x, event.y – положение курсора
Отпустить кнопку
event.x, event.y – положение курсора
Двойное нажатие
event.x, event.y – положение курсора
Указатель мыши входит в область виджета
Указатель мыши покидает область виджета
= ,
Значение клавиши передается как event.char
a =
нажатие клавиши а
Клавиша Enter
= , , ,
Слайд 28After
after(delay_ms,callback,args…) – callback вызывается через delay_ms миллисекунд
after_cancel(id)
after(delay_ms) – останавливает петлю событий
![After after(delay_ms,callback,args…) – callback вызывается через delay_ms миллисекунд after_cancel(id) after(delay_ms) – останавливает петлю событий](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/410243/slide-27.jpg)
Слайд 29tkFileDialog
tkFileDialog.askopenfile(mode=‘r’, **options)
tkFileDialog.askopenfiles(mode=‘r’, **options)
tkFileDialog.askopenfilename(**options)
tkFileDialog.askopenfilenames(**options)
![tkFileDialog tkFileDialog.askopenfile(mode=‘r’, **options) tkFileDialog.askopenfiles(mode=‘r’, **options) tkFileDialog.askopenfilename(**options) tkFileDialog.askopenfilenames(**options)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/410243/slide-28.jpg)
Слайд 31tkFileDialog
tkFileDialog.askdirectory( **options)
tkFileDialog.asksaveasfile(mode=‘w’, **options)
tkFileDialog.asksaveasfilename(**options)
![tkFileDialog tkFileDialog.askdirectory( **options) tkFileDialog.asksaveasfile(mode=‘w’, **options) tkFileDialog.asksaveasfilename(**options)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/410243/slide-30.jpg)
Слайд 32Tcl/Tk & Tkinter
button .fred -fg red -text "hi there"
^ ^
![Tcl/Tk & Tkinter button .fred -fg red -text "hi there" ^ ^](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/410243/slide-31.jpg)
\_______________/
| | |
class new options
command widget (-opt val -opt val ...) fred=Button(root, fg=“red”)
Имя виджета само становится командой:
.fred someAction someOptions fred.someAction(someOptions)