Wenn Sie ein Popup-Menü in QGraphicsScene anzeigen, klicken Sie auf oder klicken Sie mit der rechten Maustaste

8

Gibt es eine Möglichkeit, ein Popup anzuzeigen, wenn der Benutzer mit der rechten Maustaste auf einen leeren Bereich der Szene klickt?

Ich bin neu bei Qt und habe Slots und Unterklassen versucht, aber ohne Erfolg.

Kein solcher Slot und bzw.:

  

"Fehler:" QMouseEvent "wurde nicht als"

"deklariert

beim Versuch, das onMouseRelease -Ereignis zu implementieren.

    
TudorT 26.05.2012, 13:45
quelle

2 Antworten

10

QGraphicsView ist das Widget, mit dem der Inhalt von QGraphicsScene angezeigt wird. Daher ist der richtige Ort, um das Kontextmenü (Popup-Menü) zu implementieren, die QGraphicsView.

Sie müssen die Funktion contextMenuEvent neu implementieren, da es sich um Ihre eigene Klasse handelt, die von QGraphicsView geerbt wurde:

%Vor%

Siehe auch das Beispiel für Menüs .

    
user362638 26.05.2012, 14:00
quelle
7

Sie können die Methode contextMenuEvent der Klasse QGraphicsScene erneut implementieren, die Ihnen Zugriff auf die Szenenkoordinaten sowie auf die Bildschirmkoordinaten gewährt (im Gegensatz zu QGraphicsView , was auch funktioniert, aber nicht funktioniert habe diese Information):

%Vor%     
Sydius 24.12.2012 02:19
quelle