Widget-Events

Alles rund um die Programmierung mit Qt
Antworten
Lucil
Beiträge: 3
Registriert: 4. Januar 2006 09:44

Widget-Events

Beitrag 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ß
ArneStocker
Beiträge: 300
Registriert: 3. November 2004 16:15
Wohnort: Berlin

Beitrag 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
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Lucil
Beiträge: 3
Registriert: 4. Januar 2006 09:44

Beitrag 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...
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Warum werden die nichtportierbaren funktionen benutzt anstatt mousePressEvent, mouseReleaseEvent usw.?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Lucil
Beiträge: 3
Registriert: 4. Januar 2006 09:44

Beitrag von Lucil »

Weil sich mousePressEvent, mouseReleaseEvent nur auf den Inhalt des Fensters beziehen...
Antworten