SwipeView检测发布事件QML - QT
问题描述:
我需要检测用户何时从屏幕释放手指。 我正在用SwipeView做一个应用程序,但是当手指从屏幕上移除时,我还需要检测最小的幻灯片。SwipeView检测发布事件QML - QT
有一种方法呢?或者,如果我检测到手指离开应用程序窗口上的屏幕。 谢谢。
答
在我的QML学习开始时,我有一个类似的问题:我想检测鼠标事件而不会干扰其他应用程序。
这可能不是正确的解决,也许这是非常不好的风格或哈克但它的工作原理,并可以帮助你。
这个想法是构建一个C++项目,我使用某处作为父节点,我想要监视他们的鼠标事件。在这种Item
我在childMouseEventFilter
钩并通过如下方式重新实现它:
bool MouseEventListener::childMouseEventFilter(QQuickItem *item, QEvent *event)
{
emit mouseEventHappend();
event->ignore(); // Don't know if that is right. I think I should not have it here.
return QQuickItem::childMouseEventFilter(item, event);
}
在这个解决方案我不检查我得到了什么样的鼠标事件,但你可能会,并发出取决于它不同的信号。
如果在触摸设备上使用,就会出现你可能会感兴趣的两个事件:
检查QEvent.type()
适当地处理它们。有趣的类型有:
QEvent::MouseButtonPress
QEvent::MouseButtonRelease
QEvent::MouseMove
QEvent::TouchBegin
QEvent::TouchCancel
QEvent::TouchEnd
QEvent::TouchUpdate
更多:http://doc.qt.io/qt-5/qevent.html#Type-enum
尤其是触摸事件提供了关于手势的开始和手指运动的最后一站不错的信息,这可能是你的兴趣。
答
我想这对你的应用程序的最佳方法是使用一个ListView与水平方向和委托是“页”,现在你可以检测
的ListView从Flickable继承,你现在可以检测鼠标事件。 http://doc.qt.io/qt-5/qml-qtquick-listview.html
我没有要求最佳模式滑动内容...mi问题请问如何从swipeview中检测释放触摸事件 –
使用此方法,您可以使用此信号检测到您的触摸释放: http://doc.qt.io/qt-5/qml-qtquick-flickable.html# movementEnded-signal – yekmen
你用swipeview试过这个吗?为你工作? –