Wie wir bereits vorher erwähnten, verbringt eine Tkinter-Applikation die meiste Zeit innerhalb einer Ereignisschleife (event loop), die durch eine mainloop-Methode initiiert wird. Ereignisse können durch verschiedene Aktionen ausgelöst werden, zum Beispiel:
Hier ein einfaches Beispiel:
from Tkinter import *
root=Tk()
def callback(event):
print 'clicked at', event.x, event.y
frame=Frame(root, width=100, heigth=100)
frame.bind('<Button-1>',callback)
frame.pack()
root.mainloop()
Das Ereignis, das mit der Funktion callback verbunden wird, heisst hier <Button-1>. Solche Ereignisse sind als Strings zu übergeben und müssen eine bestimmte Syntax einhalten, die im wesentlichen aus den drei Bestandteilen modifier, type und detail besteht. Die Syntax lautet
Das type-Feld ist das Wichtigste am Ganzen, denn es bezeichnet die Art des Events, das wir binden wollen. Welche Arten von Events es gibt, sehen wir gleich.
Die Felder modifier und detail geben zusätzliche Informationen und sind in vielen Fällen optional.
Die Bindung eines solchen Events an eine Methode, die als Handler bezeichnet wird, geschieht über den Aufruf
In unserem Beispiel wird der String '<Button-1>' an den Namen event der Funktion callback übergeben. Die Attribute des Events <Button-1> heissen self.x und self.y und werden von der callback-Funktion ausgegeben.