523
Kapitel 18
Event-Verarbeitung
Ganz allgemein ist ein Event ein Ereignis, das zu einem unbestimmten Zeitpunkt (asyn-
chron) eintritt. Typische Events sind:
das Klicken einer Maustaste, wenn der Mauszeiger an einer bestimmten Stelle des Bild-
schirms ist
das Betätigen einer Tastenkombination auf der Tastatur
In einem Event-gesteuerten Programm mit grafischer Benutzungsoberfläche löst ein Event
ein bestimmtes Systemverhalten aus, das in einer speziellen Prozedur, einem so genannten
Eventhandler, definiert ist.
Sie kennen die Event-Verarbeitung bereits im Zusammenhang mit Buttons. Denn auch das
Anklicken eines Buttons ist ein Event. In der
command-Option des Button-Widgets ist eine
Funktion oder Methode spezifiziert, die beim Eintritt dieses Events aufgerufen wird.
Das Event-Konzept ähnelt dem Reiz-Reaktionsmodell der Verhaltenspsychologie. Danach
lässt sich das Verhalten eines Lebewesens durch Reaktionen auf äußere Reize beschreiben.
Der Anblick eines herannahenden Stieres auf einer Wiese (Reiz) löst z.B. bei den meisten
Menschen ein Fluchtverhalten aus (Reaktion). Typisch für eine derartige Ereignisverarbei-
tung ist auch eine Analyse des Events. Wie weit ist der Stier entfernt? Wie schnell ist er?
Zurück zur Programmiertechnik. Wer das Event-Konzept anwendet, muss im Prinzip drei
Probleme lösen:
Der Event muss spezifiziert werden. Was genau soll eine bestimmte Reaktion des Sys-
tems auslösen? Manchmal besteht der Event aus einer Kombination verschiedener ele-
mentarer Ereignisse (z.B. Mausklick, während eine bestimmte Taste gedrückt ist). Bei
Python werden Events durch so genannte Event-Sequenzen beschrieben.
Die Reaktion des Systems auf einen Event muss definiert werden. Prozeduren, die durch
einen Event (asynchron) aufgerufen werden, nennt man Eventhandler. Wenn ein Event
eintritt, erzeugt das Laufzeitsystem ein Event-Objekt. Dieses enthält in seinen Attributen
verschiedene Informationen wie z.B. Zeitpunkt des Events, Position des Mauszeigers
zum Zeitpunkt des Events und so weiter. Der Eventhandler kann auf diese Informatio-
nen zugreifen und sie zur Gestaltung der Systemreaktion verwenden.
Ein Event muss mit einem oder mehreren Eventhandlern verknüpft werden. Diesen Vor-
gang nennt man Binden. Events sind immer an Widgets einer grafischen Benutzungs-
oberfläche gekoppelt. Zum Beispiel kann ein Label mit der Maus angeklickt werden oder
eine Taste der Tastatur gedrückt werden, während ein bestimmtes Anwendungsfenster
aktiv ist. Alle Widgets besitzen Methoden, um die sie betreffenden Events an Eventhand-
ler zu binden.

Get Python 3 - Lernen und professionell anwenden 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.