我有一个派生自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....Just不能被困在这里……我很感谢您的回答。
发布于 2013-11-08 18:11:28
尝试重新实现QGraphicsItem::contextMenuEvent并检查QGraphicsSceneContextMenuEvent::原因,如果事件是由鼠标单击引起的。
https://stackoverflow.com/questions/19868383
复制相似问题