hoverMoveEvent в Qt5, мешающий mousePressEvent - PullRequest
0 голосов
/ 17 мая 2018

У меня есть подкласс QGraphicsPixmapItem (item) для получения hoverMoveEvents и mousePressEvent.Когда я нажимаю на элемент, не двигая мышью, hoverMoveEvent также запускается.Что еще более проблематично, так это то, что когда я вызываю QImage :: setPixelColor в hoverMoveEvent, mousePressEvent тогда не запускается.Что может происходить?

events.h

class Item : public QGraphicsPixmapItem {
  // constructor code

  protected:
    void mousePressEvent(QGraphicsSceneMouseEvent *event);
    void hoverMoveEvent(QGraphicsSceneHoverEvent *event);
}

events.cpp:

Item::Item() {
  this.setAcceptHoverEvents(true);
}

Item::mousePressEvent(QGraphicsSceneMouseEvent *event) {
  QGraphicsItem::mousePressEvent(event);
  event->accept();
  // get x, y pos
  QImage *img = Image::getInstance(); // Global image singleton
  img->setPixelColor(x, y, qRgba(255, 255, 255, 0));
}

Item::hoverMoveEvent(QGraphicsSceneHoverEvent *event) {
  // get x, y pos
  QImage *img = Image::getInstance();
  img->setPixelColor(x, y, qRgba(0, 0, 0, 0)); --> adding this stops mousePressEvent trigger.
}

Я хотел бы получать события mousepress вместе с hoverevents путем редактированияпиксели изображения в каждом событии.Обработчик hoverEvent не должен получать события нажатия мыши.

...