Nominate our 2022 Qt Champions!

Cant Get Touch Inputs ın QPixMap(image) in QGraphicsView

  • I have a QScene object in QWidget and inside QWidget i have QGraphicsView. I convert images to QPixMap give it to QScene as an element and i defined touch events in QGraphicsView class. In QGraphicsView's creator method i enabled touch events with:


    and i am managing touch event by overriding ViewPortEvent method:

    bool DicomView::viewportEvent(QEvent *event)


    if(event->type() == QEvent::TouchBegin)
        QTouchEvent *touchEvent = static_cast<QTouchEvent *>(event);

    return QGraphicsView::viewportEvent(event);


    PS:DicomView is type of QGraphicsView.

    My problem is when i run the application i can get the touch inputs from the view but when get to QView can not get touch inputs from QPixMap. I tried putting the methods inside QScene instead of QGraphicsView but QScene does not have a ViewPortEvent method. What am i supposed to do? I appreciate for the answers, thank you.

    [EDIT: code formatting, please wrap in @-tags, Volker]

  • I try to read between the lines: are you trying to get those events in your QGraphicsItems or in your QGraphicsScene? If so, you need to use QGraphicsItem::setAcceptTouchEvents on your items, then you get the QTouchEvents in your QGraphicsItem::sceneEvent() override (or QGraphicsScene::event).

Log in to reply