SwipeView检测发布事件QML -QT



我需要检测用户何时从屏幕上释放手指。我正在使用SwipeView进行应用程序,但是当手指从屏幕上卸下时,我还需要检测到最小幻灯片。

有一种方法吗?或者,也许如果我检测到何时将手指留在应用程序上的屏幕上。谢谢。

在我的QML学习的一开始,我有一个类似的问题:我想检测鼠标事件而不干扰其余的应用程序。

它可能不是解决方案,也许它是非常糟糕的样式或 hacky ,但它可以帮助您。<<<<<<<<<<<<<<<<

这个想法是构建一个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);
}

在此解决方案中,我不检查我得到的鼠标事件,但是您可能会根据它发出不同的信号。
如果在触摸设备上使用,您可能会感兴趣的两个事件:

  • QTouchEvent
  • QMouseEvent

检查QEvent.type()以适当处理它们。有趣的类型是:

  • QEvent::MouseButtonPress
  • QEvent::MouseButtonRelease
  • QEvent::MouseMove
  • QEvent::TouchBegin
  • QEvent::TouchCancel
  • QEvent::TouchEnd
  • QEvent::TouchUpdate

更多:http://doc.qt.io/qt-5/qt-5/qevent.html#type-enum

尤其是触摸事件提供了有关手势开始和手指运动的最后一站的好信息,这可能会引起您的关注。

我想您的应用程序的最佳方法是使用具有水平方向和委托的ListView是"页面",现在您可以检测到

listView是从易化的,您现在可以检测到鼠标事件。http://doc.qt.io/qt-5/qml-qtquick-listview.html

相关内容

  • 没有找到相关文章