KDE Anwendungs Tutorials: Der KDE Anwendungs-Tutorial Leitfaden für die Integrierte Entwicklungsumgebung KDevelop | ||
---|---|---|
Zurück | Kapitel 3. Das Erstellen der QT Tutorials | Vor |
Übung 5 hat das Ziel, die Widget Klasse zu erweitern. Darum lernen Sie hier auch etwas über virtuelle Funktionen. In unserem Fall werden wir die Funktion resizeEvent() neu schreiben. Abgesehen vom Erweitern unserer Klassen, ist es wichtig zu wissen, daß QT benutzerdefinierte Ereignisse über virtuelle Funktionen abarbeitet, die ein Ereignisobjekt als Parameter übergeben bekommen.
Darum sollten Sie sich mit den folgenden Klassen der QT Bibliothek vertraut machen:
QEvent
QChildEvent
QCloseEvent
QFocusEvent
QKeyEvent
QMouseEvent
QMoveEvent
QPaintEvent
QResizeEvent
QTimerEvent
Jedesmal, wenn Sie ein eigenes Widget schreiben, insbesondere dann, wenn damit sichtbare Teile der Anwendung dargestellt werden, müssen Sie die Standard Implementierung der Event-Methoden des Widgets durch eigene Methoden überschreiben, die bestimmte Ereignisse abarbeiten sollen.
Dazu gehört beispielsweise virtual void mousePressEvent ( QMouseEvent * ), die für die Verarbeitung der Maus-Ereignisse zuständig ist, die ein Kontextmenü aufklappen lassen.
Bei der Implementierung müssen Sie im Funktionskopf einen formalen Parameter angeben. Die meisten Entwickler vergeben für den Parameter den Namen event oder einfach e. Nun können Sie die Parameter des Ereignisses abfragen. Bei einem QMouseEvent müssen Sie feststellen, ob das Ereignis durch die rechte, die mittlere oder die linke Maustaste ausgelöst wurde.