Hi experts,

I code a TabletCanvas inherited from QGraphicsView, and overwrite contextMenuEvent() to bring the item to front in the scene.

However, right click on TabletCanvas cant invokes contextMenuEvent(),
even I disable all mouse events.

Can you tell me what's wrong with it ? Thank your review and answer.


Qt Code:
  1. class TabletCanvas : public QGraphicsView {
  2. ..
  3.  
  4. TabletCanvas()
  5. {
  6. zorderAct= new QAction(tr("bring to front"), this);
  7. connect(zorderAct, SIGNAL(triggered()), this, SLOT(itemZorder()));
  8. addAction(zorderAct);
  9. }
  10.  
  11. virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
  12. {
  13. QMenu menu(this);
  14. menu.addAction(zorderAct);
  15. menu.exec(event->screenPos());
  16. }
  17.  
  18. //virtual void mouseMoveEvent(QMouseEvent *event);
  19. //virtual void mousePressEvent(QMouseEvent *event);
  20. //virtual void mouseReleaseEvent(QMouseEvent *event);
  21. //virtual void mouseDoubleClickEvent(QMouseEvent *event);
  22. };
To copy to clipboard, switch view to plain text mode