我在Macbook Pro上玩Qt(v.5.5)手势,看看它是否可靠.
TapGesture = 1,
TapAndHoldGesture = 2,
PanGesture = 3,
PinchGesture = 4,
SwipeGesture = 5,
使用触摸板,我可以可靠地将捏合手势作为手势事件进行回调,而不是其他类型.潘有时会工作,但只有一个口腔垫,并且只有在触摸板上有超过1个手指并且我没有设法滑动工作.我也尝试使用鼠标,这似乎也不起作用.
我无法在线找到解释这些手势是什么,和/或如何触发它们的文档.
最佳答案 我不知道这是否会回答你的“问题”,但我想分享一些信息:手势似乎有很多混乱,包括我自己的谦虚知识,但我对它有了更多的见解. this nice answer here.它提到了一个我不知道的重要方面:接受事件.我最终像这样实现它:
bool YOURWIDGET::event(QEvent *event)
{
if (event->type() == QEvent::Gesture)
{
return gestureEvent(static_cast<QGestureEvent*>(event));
}
else if (event->type() == QEvent::GestureOverride)
{
event->accept();
}
return QGraphicsView::event(event);
}
bool YOURWIDGET::gestureEvent(QGestureEvent *event)
{
qDebug() << event;
return true;
}
事实证明,PanEvent和PinchEvent在我的案例中是并发的.然而,简单的TapEvent就像我想象的那样PanEvent(握住并移动一些东西).还有一个SwipeEvent,只有三根手指.
这一切都适用于Windows 10.
对于您自己的平台,此代码至少应该有助于确定最能描述您想要获取的行为的事件类型(即使您可能必须再次停用事件 – > gt; accept()).