Seite 1 von 1

Bildschirmschoner & Event

Verfasst: 14. Juli 2010 08:04
von Psychomax
Hallo mal wieder! ;-)

Ich habe verschiedene QGraphicObject die jeweils einen Bildschirmzeichnen. Diese sind in einer QGraphicsScene eingebunden. Nun möchte ich, wenn der Touchscreen eine gewisse Zeit nicht gedrückt worden ist - egal im welchen QGraphicObject er gerade ist - einen Bildschirmschoner aktivieren.

Frage: Wie kann ich alle ankommenden Events, sei es Mouseevents sei es von Signals abfangen!?

LG Max

Verfasst: 14. Juli 2010 11:39
von Psychomax
Ich glaube, ich hab es gelöst. Zu mindest was die Eingaben angeht. Analog zur Doku.

Code: Alles auswählen

 class KeyPressEater : public QObject
 {
     Q_OBJECT
     ...

 protected:
     bool eventFilter(QObject *obj, QEvent *event);
 };

 bool KeyPressEater::eventFilter(QObject *obj, QEvent *event)
 {
     if (event->type() == QEvent::KeyPress) {
         QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
         qDebug("Ate key press %d", keyEvent->key());
         return true;
     } else {
         // standard event processing
         return QObject::eventFilter(obj, event);
     }
 }
And here's how to install it on two widgets:

 KeyPressEater *keyPressEater = new KeyPressEater(this);
 QPushButton *pushButton = new QPushButton(this);
 QListView *listView = new QListView(this);

 pushButton->installEventFilter(keyPressEater);
 listView->installEventFilter(keyPressEater);