gpt4 book ai didi

c++ - Qt 手势。没有收到 qgesture 事件

转载 作者:可可西里 更新时间:2023-11-01 11:30:22 31 4
gpt4 key购买 nike

我正在尝试在我的小部件(QWidget 的子类)中获取 QGesture 事件。我的构造函数中有以下内容:

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;
}

在 Windows 7 上,我收到鼠标输入事件,但没有收到其他任何事件。 (我正在使用 ms surface sdk 输入模拟器来生成建议的触摸事件 here )。偶尔我会收到消息

QGestureManager::deliverEvent: could not find the target for gesture.

但不能轻易重现。

为什么我收不到手势事件?

最佳答案

您不得在小部件上设置 Qt::WA_TouchPadAcceptSingleTouchEventsenum Qt::WidgetAttribute 的文档在前面的部分中列出相应的属性

Warning: This flag must never be set or cleared by the widget's author.

这在早期的文档中更为明确(例如 enum Qt::WidgetAttribute for Qt 4.8)。

关于c++ - Qt 手势。没有收到 qgesture 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21548898/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com