http://doc.qt.digia.com/4.6/gestures-imagegestures.htmlから「画像ジェスチャーの例」を試しました。この例では、ジェスチャ:PanGesture、PinchGesture、SwipeGestureの3つしかありません。我々はImageWidget、コンストラクタに書き込むために必要なすべての5つのジェスチャーを認識するためにSwipeGesture Qt、ジェスチャー。 TapAndHoldとスワイプが認識されない
- :しかし、Qtは5つのジェスチャーを提供します:
grabGesture(Qt::TapGesture); grabGesture(Qt::TapAndHoldGesture); grabGesture(Qt::PanGesture); grabGesture(Qt::PinchGesture); grabGesture(Qt::SwipeGesture);
は、私は、私の質問は、なぜジェスチャースワイプとTapAndHoldが認識されていないされて
void ImageWidget::tapTriggered(QTapGesture *gesture) { qDebug() << "TAP" << gesture->position(); } void ImageWidget::tapandholdTriggered(QTapAndHoldGesture *tapandhold) { qDebug() << "TAPANDHOLD"; }
のようなメソッドもするGestureEvent()
bool ImageWidget::gestureEvent(QGestureEvent *event) { if (QGesture *swipe = event->gesture(Qt::SwipeGesture)) swipeTriggered(static_cast<QSwipeGesture *>(swipe)); else if (QGesture *pan = event->gesture(Qt::PanGesture)) panTriggered(static_cast<QPanGesture *>(pan)); if (QGesture *pinch = event->gesture(Qt::PinchGesture)) pinchTriggered(static_cast<QPinchGesture *>(pinch)); if (QGesture *tap = event->gesture(Qt::TapGesture)) tapTriggered(static_cast<QTapGesture *>(tap)); if (QGesture *tapandhold = event->gesture(Qt::TapAndHoldGesture)) { tapandholdTriggered(static_cast<QTapAndHoldGesture *>(tapandhold)); } return true; }
と書き込み不足しているメソッドを追加しましたか? これらのジェスチャーは、認識される3つのジェスチャー(パン、ピンチ、タップ)として同様に実装されています。なぜそれは動作しません?
私はQtのより新しいバージョンを試してみてください(そして、あなたのOSやデバイスに言及しないでください。)ヘルプ
これはわかりましたか? QListWidgetでジェスチャーをキャプチャすることについても理解しようとしています。 –
あなたはこれを解決しましたか?私も同じ問題に直面しています。 – Tarantula