Next: Index Types |
Previous: OptionTypes |
Contents
Bindings and Events
The bind method from the widget command allows you to watch for
certain events and to have a callback function trigger when that event
type occurs. The form of the bind method is:
def bind(self, sequence, func, add=''):
where:
- sequence
- is a string that denotes the target kind of event. (See the bind
man page and page 201 of John Ousterhout's book for details).
- func
- is a python function, taking one argument, to be invoked when the
event occurs. An Event instance will be passed as the argument.
(Functions deployed this way are commonly known as callbacks.)
- add
- is optional, either "" or "+". Passing an empty string denotes
that this binding is to replace any other bindings that this event is
associated with. Passing "+" means that this function is to be added
to the list of functions bound to this event type.
For example:
def turnRed(self, event):
event.widget["activeforeground"] = "red"
self.button.bind("", self.turnRed)
Notice how the widget field of the event is being accesed in the
turnRed
callback. This field contains the widget that
caught the X event. The following table lists the other event fields
you can access, and how they are denoted in Tk, which can be useful
when referring to the Tk man pages.
Tk Tkinter Event Field Tk Tkinter Event Field
-- ------------------- -- -------------------
%f focus %A char
%h height %E send_event
%k keycode %K keysym
%s state %N keysym_num
%t time %T type
%w width %W widget
%x x %X x_root
%y y %Y y_root