Seite 1 von 1

Widget-Events

Verfasst: 4. Januar 2006 09:47
von Lucil
Hallo,

ich habe ein Widget erstellt in dem Bilddaten wiedergegeben werden. Beim Verschieben oder auch Scalieren des Widget sollen die Bilddaten jedoch ausgeblendet werden. Hierfür müsste ich die Events "MousePress" bzw "MouseRelease" die beim Klicken und Loslassen des Widget-Rahmens gesendet werden abfangen und entsprechend reagieren.

Das Problem besteht darin das sich die Standardevents von QT auf den Inhalt des Fensters beschränken. --> Ein Klick auf den Widget-Rahmen löst kein Event aus! Gibt es denn irgendwelche Erweiterungen für QT um die beschriebenen Events, die anscheinend nur für die X11-interne Verwendung bestimmt sind, abzufangen???

P.S.: QResizeEvent, QMoveEvent, usw. hab ich schon getestet ... sie erfüllen nicht den gewünschten Zweck

Gruß

Verfasst: 17. Januar 2006 23:36
von ArneStocker
Hi

es könnte sein, dass diese Ereignisse platform abhängig sind (nur so 'ne vermutung). Dann kannst Du nur noch (für jede plattform gesondert) die system - events abfangen. z.B. QApplication::winEventFilter ( MSG * ) für windows und so weiter. Triffst Du auf ein geeigneste (platform) Ereignis, sendest Du vorher direkt ein Custom Event an Dein Fenster und lässt dann das eigentliche (platform) Ereignis ausführen

Gruss Arne

Verfasst: 18. Januar 2006 07:39
von Christian81
Ich glaube Du fragst einfach nur das falsche Widget ab. Wie versucht Du die Events abzufangen? http://doc.trolltech.com/4.0/qwidget.ht ... PressEvent

Verfasst: 18. Januar 2006 08:33
von Lucil
Nein glaube ich nicht ... das Eventhandling erfolgt vollständig durch selbstimplementierte Funktionen.

die Events (des Festers) fange ich mit folgenden Slots bzw. Funktionen ab:

virtual bool QWidget::X11Event (XEvent *)

virtual bool QApplication::X11EventFilter (XEvent *)

int QApplication::X11ProcessEvent (XEvent *)

Aber auch damit komme ich nicht an die Events des Fensterrahmens oder gar außerhalb des Fensters...

Verfasst: 18. Januar 2006 08:39
von Christian81
Warum werden die nichtportierbaren funktionen benutzt anstatt mousePressEvent, mouseReleaseEvent usw.?

Verfasst: 18. Januar 2006 08:44
von Lucil
Weil sich mousePressEvent, mouseReleaseEvent nur auf den Inhalt des Fensters beziehen...