Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π·Ρ‹ΠΊ программирования PythonΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 48

Автор Π ΠΎΠΌΠ°Π½ Π‘ΡƒΠ·ΠΈ

β€’ Button (Кнопка) ΠŸΡ€ΠΎΡΡ‚Π°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ° для Π²Ρ‹Π·ΠΎΠ²Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… дСйствий (выполнСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹).

β€’ Canvas (Рисунок) Основа для Π²Ρ‹Π²ΠΎΠ΄Π° графичСских ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ².

β€’ Checkbutton (Π€Π»Π°ΠΆΠΎΠΊ) Кнопка, которая ΡƒΠΌΠ΅Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя состояниями ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° Π½Π΅Π΅.

β€’ Entry (ПолС Π²Π²ΠΎΠ΄Π°) Π“ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ввСсти строку тСкста.

β€’ Frame (Π Π°ΠΌΠΊΠ°) Π’ΠΈΠ΄ΠΆΠ΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Π² сСбС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹.

β€’ Label (Надпись) Π’ΠΈΠ΄ΠΆΠ΅Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ тСкст ΠΈΠ»ΠΈ графичСскоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

β€’ Listbox (Бписок) ΠŸΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ Ρ€Π°ΠΌΠΊΠ° со списком, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько элСмСнтов.

β€’ Menu (МСню) Π­Π»Π΅ΠΌΠ΅Π½Ρ‚, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ (popup) ΠΈ Π½ΠΈΡΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ (pulldown) мСню.

β€’ Menubutton (ΠšΠ½ΠΎΠΏΠΊΠ°β€“ΠΌΠ΅Π½ΡŽ) Кнопка с Π½ΠΈΡΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΌ мСню.

β€’ Message (Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅) Аналогично надписи, Π½ΠΎ позволяСт Π·Π°Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ строки ΠΈ ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° располоТСния.

β€’ Radiobutton (БСлСкторная ΠΊΠ½ΠΎΠΏΠΊΠ°) Кнопка для прСдставлСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π’Π°ΠΊΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, дСйствуСт Π² Π³Ρ€ΡƒΠΏΠΏΠ΅. ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π½ΠΈΡ… ΠΊΠ½ΠΎΠΏΠΊΠ° Π³Ρ€ΡƒΠΏΠΏΡ‹, выбранная Ρ€Π°Π½Π΅Π΅, «отскакиваСт».

β€’ Scale (Π¨ΠΊΠ°Π»Π°) Π‘Π»ΡƒΠΆΠΈΡ‚ для задания числового значСния ΠΏΡƒΡ‚Π΅ΠΌ пСрСмСщСния Π΄Π²ΠΈΠΆΠΊΠ° Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅.

β€’ Scrollbar (Полоса ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ) Полоса ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ слуТит для отобраТСния Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°Ρ…. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ, Ρ‚Π°ΠΊ ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ.

β€’ Text (Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ тСкст) Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ позволяСт Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст с использованиСм Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… стилСй, Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ Π² тСкст рисунки ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΠΊΠ½Π°.

β€’ Toplevel (Окно Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня) ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ΡΡ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈ содСрТит Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹.

ВсС эти классы Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ наслСдования Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ β€” ΠΎΠ½ΠΈ Ρ€Π°Π²Π½ΠΎΠΏΡ€Π°Π²Π½Ρ‹. Π­Ρ‚ΠΎΡ‚ Π½Π°Π±ΠΎΡ€ достаточСн для построСния интСрфСйса Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв.

Бобытия

Π’ систСмС соврСмСнного графичСского интСрфСйса имССтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ события, связанныС с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€ΠΎΠΉ ΠΈ ΠΌΡ‹ΡˆΡŒΡŽ, ΠΈ происходящиС Π½Π° Β«Ρ‚Π΅Ρ€Ρ€ΠΈΡ‚ΠΎΡ€ΠΈΠΈΒ» Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°. Π’ Tk события ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ тСкстовой строки β€” шаблона события, состоящСго ΠΈΠ· Ρ‚Ρ€Π΅Ρ… элСмСнтов (ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, Ρ‚ΠΈΠΏ события ΠΈ дСтализация события).

Π’ΠΈΠΏ события Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ события Activate Активизация ΠΎΠΊΠ½Π° ButtonPress НаТатиС ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ ButtonRelease ΠžΡ‚ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ Deactivate ДСактивация ΠΎΠΊΠ½Π° Destroy Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΎΠΊΠ½Π° Enter Π’Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ курсора Π² ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° FocusIn ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ фокуса ΠΎΠΊΠ½ΠΎΠΌ FocusOut ΠŸΠΎΡ‚Π΅Ρ€Ρ фокуса ΠΎΠΊΠ½ΠΎΠΌ KeyPress НаТатиС клавиши Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ KeyRelease ΠžΡ‚ΠΆΠ°Ρ‚ΠΈΠ΅ клавиши Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ Leave Π’Ρ‹Ρ…ΠΎΠ΄ курсора Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° Motion Π”Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΌΡ‹ΡˆΠΈ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° MouseWheel ΠŸΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠ° колСсика ΠΌΡ‹ΡˆΠΈ Reparent ИзмСнСниС родитСля ΠΎΠΊΠ½Π° Visibility ИзмСнСниС видимости ΠΎΠΊΠ½Π°

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ описаний событий строками ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ названия клавиш ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½ΠΈΠΆΠ΅:

"<ButtonPress–3>" ΠΈΠ»ΠΈ просто "<3>" β€” Ρ‰Π΅Π»Ρ‡ΠΎΠΊ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ, Ссли ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π° Ρ‚Ρ€Π΅Ρ…ΠΊΠ½ΠΎΠΏΠΎΡ‡Π½ΠΎΠΉ ΠΌΡ‹ΡˆΠΈ слСва–направо). "<Shift–Double–Button–1>" β€” Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Ρ‰Π΅Π»Ρ‡ΠΎΠΊ ΠΌΡ‹ΡˆΡŒΡŽ (Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ) с Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Shift. Π’ качСствС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ (список Π½Π΅ΠΏΠΎΠ»Π½Ρ‹ΠΉ):

Control, Shift, Lock,

Button1–Button5 ΠΈΠ»ΠΈ B1–B5,

Meta, Alt, Double, Triple.

ΠŸΡ€ΠΎΡΡ‚ΠΎ символ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ событиС β€” Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиши. НапримСр, Β«kΒ» β€” Ρ‚ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ "<KeyPress–k>". Для нСалфавитно–цифровых клавиш Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ названия:

Cancel, BackSpace, Tab, Return, Shift_L, Control_L, Alt_L,

Pause, Caps_Lock, Escape, Prior, Next, End, Home, Left,

Up, Right, Down, Print, Insert, Delete, F1, F2, F3, F4, F5, F6, F7,

F8, F9, F10, F11, F12, Num_Lock, Scroll_Lock, space, less

Π—Π΄Π΅ΡΡŒ <space> ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π΅Π», Π° <less> β€” Π·Π½Π°ΠΊ мСньшС. <Left>, <Right>, <Up>, <Down> β€” стрСлки. <Prior>, <Next> β€” это PageUp ΠΈ PageDown. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ клавиши Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ надписям Π½Π° стандартной ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Shift_L, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Shift, нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€.

Π’ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ срСдС ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ, ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ что–то особСнноС Π² систСмС, ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ Π΄ΠΎΠΉΡ‚ΠΈ Π΄ΠΎ графичСского прилоТСния. НапримСр, извСстный всСм Ctrl–Alt–Del.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° позволяСт ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ направляСмыС Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρƒ события, Π² частности β€” keysym, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ клавиши ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² шаблонС события:

from Tkinter import *

tk = Tk()      # основноС ΠΎΠΊΠ½ΠΎ прилоТСния

txt = Text(tk) # тСкстовый Π²ΠΈΠ΄ΠΆΠ΅Ρ‚, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΉ ΠΎΠΊΠ½Ρƒ tk

txt.pack()     # располагаСтся ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ pack


# функция ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события

def event_info(event):

 txt.delete("1.0", END) # удаляСтся с Π½Π°Ρ‡Π°Π»Π° Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° тСкста

 for k in dir(event):   # Ρ†ΠΈΠΊΠ» ΠΏΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ события

  if k[0] != "_":       # бСрутся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСслуТСбныС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹

   # готовится описаниС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° события

   ev = "%15s: %s\n" % (k, repr(getattr(event, k)))

   txt.insert(END, ev)  # добавляСтся Π² ΠΊΠΎΠ½Π΅Ρ† тСкста


# привязываСтся Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρƒ txt функция event_info для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий,

# ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ <KeyPress>

txt.bind("<KeyPress>", event_info)

tk.mainloop() # Π³Π»Π°Π²Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиши Esc Π² ΠΎΠΊΠ½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

      char: '\x1b'

     delta: 9

    height: 0

   keycode: 9

    keysym: 'Escape'

keysym_num: 65307

       num: 9

send_event: False

    serial: 159

     state: 0

      time: -1072960858

      type: '2'

    widget: <Tkinter.Text instance at 0x401e268c>

     width: 0

         x: 83

    x_root: 448

         y: 44

    y_root: 306

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· этих Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ²:

β€’ char НаТатый символ (для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… событий β€” ??)

β€’ height, width Высота ΠΈ ΡˆΠΈΡ€ΠΈΠ½Π°.

β€’ focus Π‘Ρ‹Π» Π»ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ события фокус Ρƒ ΠΎΠΊΠ½Π°?

β€’ keycode Код символа (скан–код ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹).

β€’ keysym БимволичСскоС имя клавиши.

β€’ serial Π‘Π΅Ρ€ΠΈΠΉΠ½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ события. УвСличиваСтся ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ возникновСния событий.

β€’ time ВрСмя возникновСния события. ВсС врСмя увСличиваСтся.

β€’ widget Π’ΠΈΠ΄ΠΆΠ΅Ρ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ событиС.

β€’ x, y ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ указатСля Π² Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π΅ Π²ΠΎ врСмя события.

β€’ x_root, y_root ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ указатСля Π½Π° экранС Π²ΠΎ врСмя события.

Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, совсСм Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ события ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π» Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡ… ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎ принял. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ всС события Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° grab_set() (grab_release() освобоТдаСт Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ ΠΎΡ‚ этой обязанности). Π’ Tk ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ возмоТности управлСния событиями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° происходит Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ конструктора ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ класса. Π’Ρ‹Π·ΠΎΠ² конструктора ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис:

Widget([master[, option=value, ...]])

Π—Π΄Π΅ΡΡŒ Widget β€” класс Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°, master β€” видТСт–хозяин, option ΠΈ value β€” конфигурационная опция ΠΈ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ°Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько).

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ свойства, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ (ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² config() (ΠΈΠ»ΠΈ configure()) ΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со словарями. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΉ синтаксис для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со свойствами:

widget.config(option=value, ...)

widget["option"] = value

value = widget["option"]

widget.keys()

Π’ случаС, ΠΊΠΎΠ³Π΄Π° имя свойства совпадаСт с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом языка Python, принято ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ послС ΠΈΠΌΠ΅Π½ΠΈ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠ΅ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅. Π’Π°ΠΊ, свойство class Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ class_, Π° to ΠΊΠ°ΠΊ to_.