我有一个从 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....只是不能卡在这里...感谢您的回答。