首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发布事件QML上的SwipeView检测

发布事件QML上的SwipeView检测
EN

Stack Overflow用户
提问于 2017-09-11 09:59:10
回答 2查看 1K关注 0票数 1

我需要检测用户何时从屏幕上释放手指。我正在用SwipeView做一个应用程序,但是当手指从屏幕上移除时,我也需要检测到最小的幻灯片。

有什么办法吗?或者,如果我检测到手指何时离开ApplicatioWindow上的屏幕。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-11 12:40:56

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

它可能不是正确的解决方案,也许它是非常糟糕的风格或讨厌,但它的工作,并可能帮助你。

其想法是构建一个C++项,我在某个地方使用它作为父节点来监视所有我想监视它们的鼠标事件的节点。在这个Item中,我重新实现了childMouseEventFilter,如下所示:

代码语言:javascript
复制
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/qevent.html#Type-enum

特别是触摸事件提供了很好的信息,关于手势的开始和手指运动的最后一腿,这可能是你感兴趣的。

票数 0
EN

Stack Overflow用户

发布于 2017-09-11 12:19:09

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

ListView是从Flickable继承的,您现在可以检测鼠标事件。http://doc.qt.io/qt-5/qml-qtquick-listview.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46152927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档