Событие контекстного меню с QGraphicsWidget - PullRequest
2 голосов
/ 10 июня 2010

В моем приложении я подкласс QGraphicsWidgetВ краске я рисую линию с шириной пера 4.Я переопределил boundingRect () и shape ().Но я не могу поймать событие контекстного меню каждый раз, когда нажимаю правую кнопку мыши.В чем проблема. (Ширина пера?)

 //Sample code for boundingRect() and shape()
  QRectF boundingRect() const
  {
    qreal rectLeft = x1 < x2 ? x1 : x2;
    qreal rectTop = y1 < y2 ? y1 : y2;
    qreal rectWidth = (x1 - x2) != 0 ? abs(x1-x2) : 4;
    qreal rectHeight = (y1 - y2) != 0 ? abs(y1 -y2) : 4;

    return QRectF(rectLeft,rectTop,rectWidth,rectHeigt);
  }

  QPainterPath shape()
  {
    QPainterPath path;
    path.addRect(boundingRect());
    return path;
  }

1 Ответ

0 голосов
/ 12 декабря 2010

Вы также можете переопределить QWidget::mousePressEvent(), проверьте, нажимается ли только rightMouseButton, и вызовите свой метод, где вы покажете свое QMenu вручную.

...