Tkinter Events
So far, we’ve seen only one kind of event handling: callbacks performed on callables set with the command=
option of buttons and menu entries. Tkinter
also lets you set callables to handle a variety of events. Tkinter
does not let you create custom events: you are limited to working with events predefined by Tkinter
itself.
The Event Object
General event callbacks must accept one argument event
that is a Tkinter
event object. Such an event object has several attributes that describe the event:
char
A single-character string that is the key’s code (only for keyboard events)
keysym
A string that is the key’s symbolic name (only for keyboard events)
num
Button number (only for mouse-button events);
1
and upx
,y
Mouse position, in pixels, relative to the upper-left corner of the widget
x_root y_root
Mouse position, in pixels, relative to the upper-left corner of the screen
widget
The widget in which the event has occurred
Binding Callbacks to Events
To bind a callback to an event in a widget w
, call w
.bind
and describe the event with a string, usually enclosed in angle brackets ('<...>'
). The following example prints 'Hello World'
each time the user presses the Enter key:
from Tkinter import * root = Tk( ) def greet(*ignore): print 'Hello World' root.bind('<Return>', greet) root.mainloop( )
Method tag_bind
of classes Canvas
and Text
(covered in tag_bind
in Tags and tag_bind
in Canvas Methods on Items) binds event callbacks to sets of items of a Canvas
instance, or ranges within a Text ...
Get Python in a Nutshell, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.