C++ Qt手势。不接收Qsignature事件
我正在尝试在我的小部件(QWidget的子类)中获取Q手势事件。我的构造函数中包含以下内容:C++ Qt手势。不接收Qsignature事件,c++,windows,qt,C++,Windows,Qt,我正在尝试在我的小部件(QWidget的子类)中获取Q手势事件。我的构造函数中包含以下内容: setAttribute(Qt::WA_AcceptTouchEvents); setAttribute(Qt::WA_TouchPadAcceptSingleTouchEvents); grabGesture(Qt::SwipeGesture); grabGesture(Qt::PanGesture); grabGesture(Qt::PinchGesture); 我有自己的事件函数: bool M
setAttribute(Qt::WA_AcceptTouchEvents);
setAttribute(Qt::WA_TouchPadAcceptSingleTouchEvents);
grabGesture(Qt::SwipeGesture);
grabGesture(Qt::PanGesture);
grabGesture(Qt::PinchGesture);
我有自己的事件函数:
bool MyWidget::event(QEvent *event)
{
if(event->type() == QEvent::Gesture)
{
TRACE("Gesture");
}
if(event->type() == QEvent::GestureOverride)
{
TRACE("Gesture override");
}
if(event->type() == QEvent::Enter)
{
TRACE("Mouse enter");
}
return true;
}
在Windows7上,我只接收鼠标输入事件,其他什么都不接收。(我正在使用ms surface sdk输入模拟器生成建议的触摸事件)。我偶尔会得到这个信息
QGestureManager::deliverEvent: could not find the target for gesture.
但这不容易复制
为什么我没有收到手势事件?您需要有一个父主窗口才能抓取手势,请参阅。您不能在小部件上设置
Qt::WA_touchpad acceptsingletouchEvents
。的文档在前面的一节中列出了相应的属性
警告:小部件的作者不得设置或清除此标志
在以前的文档中(例如),这一点更为明确。我尝试确保我的小部件有一个QMainWindow父窗口,但这没有帮助。我还尝试了ImageSignatures qt示例,使用ms surface sdk输入模拟器无法识别任何手势。我还在iPad1上的ios 5上尝试了ImageSignatures示例,但也没有识别出任何手势。MS Surface SDK输入模拟器是否可能不会生成与Qt事件系统兼容的触摸事件?从你描述的情况来看,情况似乎确实如此。我有一个覆盆子圆周率与7“官方多触摸屏和Qt的触摸功能工程没有任何问题。