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:
charA single-character string that is the key’s code (only for keyboard events)
keysymA string that is the key’s symbolic name (only for keyboard events)
numButton number (only for mouse-button events);
1and upx,yMouse position, in pixels, relative to the upper-left corner of the widget
x_root y_rootMouse position, in pixels, relative to the upper-left corner of the screen
widgetThe 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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access