我在QWidget中有一个QScene对象,在QWidget里面我有QGraphicsView。我将图像转换为QPixMap,将其作为元素提供给QScene,我在QGraphicsView类中定义了触摸事件。在QGraphicsView的创建者方法中,我启用了触摸事件:
viewport()->setAttribute(Qt::WA_AcceptTouchEvents);
我正在通过覆盖ViewPortEvent方法管理触摸事件:
bool DicomView::viewportEvent(QEvent *event)
{
if(event->type() == QEvent::TouchBegin)
{
QTouchEvent *touchEvent = static_cast<QTouchEvent *>(event);
.......
return QGraphicsView::viewportEvent(event);
}
PS:DicomView是QGraphicsView的类型。
我的问题是,当我运行应用程序时,我可以从视图中获取触摸输入,但是当到达QView时无法从QPixMap获取触摸输入。我尝试将方法放在QScene而不是QGraphicsView中,但QScene没有ViewPortEvent方法。我该怎么办?