基本的に次のような QGraphicsItem から派生したクラスがあります。
class MyRect: public QObject, public QGraphicsItem
{
Q_OBJECT
Q_INTERFACES(QGraphicsItem)
public:
explicit MyRect(QObject *parent = 0);
MyRect(QColor fillColor, float val, QString txt = "", bool isLeaf = false);
int width, height;
protected:
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
virtual QRectF boundingRect() const;
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
};
問題は、mouseReleaseEvent と mousePressEvent が、右ボタンのクリックを検出できない QGraphicsSceneMouseEvent 引数のみを受け入れることです。使用できる mousePressEvent(QMouseEvent *event) バージョンがあることは知っていますが、 QGraphicsItem では機能しないようです....ここで立ち往生することはできません...あなたの答えに感謝します。