5 Stimmen

Übergabe/Weiterleitung von Ereignissen an ein Unterobjekt in Qt

Ich arbeite an einer Qt-Anwendung, und ich habe ein Problem mit dem Erhalten von Mausereignissen, wo ich sie will.

Hier ist eine Übersicht über das, was ich habe (auf jeder Ebene gibt es andere Dinge, die die Notwendigkeit der Ansichten und Szenen bedingen):

+----------------
| App Window       -- QMainWindow
| +--------------
| | View           -- QGraphicsView   --- Grabbing mouse events here for Mode 1
| | +------------
| | | Scene        -- QGraphicsScene
| | | +----------
| | | | Image      -- QGraphicsPixmap --- Want to grab mouse events here for Mode 2
| | | | 

In Modus 1 greife ich auf das Ereignis mousePressEvent am Siehe Ebene. In Modus 2 möchte ich die Mausereignisse auf der Ebene Bild Niveau. Bevor ich überlastet war mousePressEvent in der Klasse View konnte ich alle Ereignisse in Bild . Jetzt, wo ich bei Siehe Ich kann keine Mausereignisse in Image erhalten. Bild ist privat innerhalb Schauplatz und ich möchte sie nicht preisgeben.

Hier gibt es keine Vererbung; jedes Element ist ein Objekt, das von dem darüber liegenden Objekt erstellt wird.

Lesen Sie sich diese Frage durch Qt - übergeben Sie Ereignisse an mehrere Objekte? macht den Anschein, als wolle ich Mausereignisse an der Bild Ebene und lassen Sie sie wieder nach oben gehen; ich müsste jedoch noch mousePressEvent sur Siehe und ich wäre wieder genau da, wo ich jetzt bin.

Gibt es eine Möglichkeit, die Ereignisbehandlung während der Laufzeit ein- und auszuschalten und sicherzustellen, dass sie an die unteren Ebenen weitergeleitet werden? Oder gibt es eine Möglichkeit, Ereignisse an ein Unterobjekt weiterzuleiten?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X