2017-09-11 99 views
0

我需要檢測用戶何時從屏幕釋放手指。 我正在用SwipeView做一個應用程序,但是當手指從屏幕上移除時,我還需要檢測最小的幻燈片。SwipeView檢測發佈事件QML - QT

有一種方法呢?或者,如果我檢測到手指離開應用程序窗口上的屏幕。 謝謝。

回答

0

在我的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

尤其是觸摸事件提供了關於手勢的開始和手指運動的最後一站不錯的信息,這可能是你的興趣。

0

我想這對你的應用程序的最佳方法是使用一個ListView與水平方向和委託是「頁」,現在你可以檢測

的ListView從Flickable繼承,你現在可以檢測鼠標事件。 http://doc.qt.io/qt-5/qml-qtquick-listview.html

+0

我沒有要求最佳模式滑動內容...mi問題請問如何從swipeview中檢測釋放觸摸事件 –

+0

使用此方法,您可以使用此信號檢測到您的觸摸釋放: http://doc.qt.io/qt-5/qml-qtquick-flickable.html# movementEnded-signal – yekmen

+0

你用swipeview試過這個嗎?爲你工作? –