1
在寫Qt中一個簡單的Android應用程序,我遇到了一個不舒服的窘境:Qt的Android的手勢問題
我的QWidget的一個子類,稱爲PlotView,並重新實現了從它的事件功能:
bool PlotView::event(QEvent *event){
if(event->type() == QEvent::Gesture){
emit gestureEvent(static_cast<QGestureEvent*>(event));
return true;
}
return QWidget::event(event); \\Line A
}
而且我已經在類的構造函數以下行:
this->grabGesture(Qt::SwipeGesture);
this->grabGesture(Qt::PanGesture);
this->grabGesture(Qt::PinchGesture);
this->setAttribute(Qt::WA_AcceptTouchEvents);
我覺得很奇怪是什麼運行這樣的應用程序時,它不承認任何手勢。但是,當刪除功能的最後一行(上面的A行)時,手勢突然被識別,但小部件未被繪製。
一些規格:我目前正在運行Qt 5.2.0,編譯運行Android 4.1.2的三星Galaxy Note 10.1 GT-N8010。
有沒有人有任何建議,我怎麼可以使這個小部件被繪和手勢識別運行?
你如何解決它?我按照你的說法嘗試,但它不運行 – Viet
自從我開始研究這個過程已經有一段時間了,但我會試着從記憶中回答。 我記得,有一個問題,父類事件處理程序沒有任何處理觸摸手勢的方法。幸運的是,我有可能改變這一點,因此選擇以這種方式解決我的問題。 另請注意,我使用Qt 5.2.0。我無法確定此解決方案是否適用於其他版本。 – Tom