Tkinter Events
So far, we’ve seen only
the most elementary kind of event handling: the callbacks performed
on callables installed with the command=
option of
buttons and menu entries of various kinds. Tkinter
also lets you install callables to call back when needed to handle a
variety of events. However, Tkinter
does not let
you create your own 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 describing 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 up-
x
,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
, describing 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 earlier in this chapter, ...
Get Python in a Nutshell 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.