我需要检测用户何时从屏幕上释放手指。我正在用SwipeView做一个应用程序,但是当手指从屏幕上移除时,我也需要检测到最小的幻灯片。
有什么办法吗?或者,如果我检测到手指何时离开ApplicatioWindow上的屏幕。谢谢。
发布于 2017-09-11 12:40:56
在我学习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);
}在这个解决方案中,我不检查我得到了什么类型的鼠标事件,但是您可能会检查,并根据它发出不同的信号。
如果在触摸设备上使用,可能会有两个您感兴趣的事件:
QTouchEventQMouseEvent检查QEvent.type()以适当地处理它们。令人感兴趣的类型有:
QEvent::MouseButtonPressQEvent::MouseButtonReleaseQEvent::MouseMoveQEvent::TouchBeginQEvent::TouchCancelQEvent::TouchEndQEvent::TouchUpdate更多:http://doc.qt.io/qt-5/qevent.html#Type-enum
特别是触摸事件提供了很好的信息,关于手势的开始和手指运动的最后一腿,这可能是你感兴趣的。
发布于 2017-09-11 12:19:09
我想您的应用程序最好的方法是使用具有水平方向和委托的ListView,这是一个“页面”,现在您可以检测到
ListView是从Flickable继承的,您现在可以检测鼠标事件。http://doc.qt.io/qt-5/qml-qtquick-listview.html
https://stackoverflow.com/questions/46152927
复制相似问题