我在 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 方法。我应该做些什么?