@Christian81:
Danke für deine Antwort, ich habe jetzt mal die Flag QGraphicsItem::ItemIsSelectable gesetzt, was aber auch nichts gebracht hat.
Die QGraphicsObjecte habe ich mit
in die Szene gesetzt.
Meine von QGraphicsScene abgeleitete Klasse sieht so aus:
Code: Alles auswählen
#ifndef MYGSC_H
#define MYGSC_H
#include <QGraphicsScene>
#include <QGraphicsSceneMouseEvent>
#include <QDebug>
class MyGSc : public QGraphicsScene
{
Q_OBJECT
public:
explicit MyGSc(QObject *parent = 0);
explicit MyGSc(qreal x, qreal y, qreal width, qreal height, QObject *parent = 0);
protected:
void mousePressEvent(QGraphicsSceneMouseEvent *event);
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
};
#endif // MYGSC_H
Und die Klasse des QGraphicsObject's sieht so aus (gekürzt):
Code: Alles auswählen
#ifndef BAC_H
#define ITEM_H
#include "mainwindow.h"
#include "mygsc.h"
#include <QGraphicsObject>
class Item : public QGraphicsObject
{
Q_OBJECT
public:
Item(MyGSc *parent, MainWindow *wnd); //Default Konstuktor
//Default Destruktor
~Item();
protected:
void mousePressEvent(QGraphicsSceneMouseEvent *event);
void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
};
#endif // ITEM_H
Im Konstruktor des QGraphicsObject's wird außerdem noch die Flag QGraphicsItem::ItemIsSelectable gesetzt.
Wenn ich mir mit qDebug() die Aufrufe der Funktionen anzeigen lasse, wird nur in MyGSc das Press bzw. Release Event ausgelöst, außer wenn ich schnell hintereinander Klicke (z.B. Doppelklick), dann wird auch die Press-Funktion vom QGraphicsObject aufgerufen, aber die Release-Funktion trotzdem nicht.
Weiß jemand, was ich da falsch gemacht habe?