O'Reilly logo

Python in a Nutshell, 2nd Edition by Alex Martelli

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 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 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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required