У меня есть подкласс 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 не должен получать события нажатия мыши.