在Qt中编写一个简单的Android应用程序后,我遇到了一个令人不安的困境:
我有一个名为PlotView的QWidget子类,并从中重新实现了事件函数:
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上进行编译。
有没有人对如何使用正在绘制的小部件和手势识别进行此运行有任何建议?
答案 0 :(得分:0)
似乎添加了行
this->grabGesture(Qt::SwipeGesture);
this->grabGesture(Qt::PanGesture);
this->grabGesture(Qt::PinchGesture);
this->setAttribute(Qt::WA_AcceptTouchEvents);
到父类构造函数修复了问题。