Qt 如何在QML中禁用触摸事件?

Qt 如何在QML中禁用触摸事件?,qt,qml,qtquick2,Qt,Qml,Qtquick2,------------------------更新------------------------ 现在我已经阻止了光标的移动,但现在如何禁用触摸事件 在我的应用程序中,如果我在我的应用程序上触摸,我不希望光标移动到我触摸的地方,因此我必须禁用所有触摸事件,我使用eventFileter,但它工作得不太好 主窗口: QQuickWindow* win = qobject_cast<QQuickWindow *>(engine.rootObjects()[0]); //win-&g

------------------------更新------------------------

现在我已经阻止了光标的移动,但现在如何禁用触摸事件


在我的应用程序中,如果我在我的应用程序上触摸,我不希望光标移动到我触摸的地方,因此我必须禁用所有触摸事件,我使用eventFileter,但它工作得不太好

主窗口:

QQuickWindow* win = qobject_cast<QQuickWindow *>(engine.rootObjects()[0]);
//win->showMaximized();
gHwnd = (HWND)win->winId();
DisableTouchFeedback(gHwnd);
pObject->installEventFilter(new QTouchEventFilter);      
QQuickWindow*win=qobject_cast(engine.rootObjects()[0]);
//win->showMaximized();
gHwnd=(HWND)win->winId();
禁用触摸反馈(gHwnd);
POObject->installEventFilter(新的QTouchEventFilter);
事件筛选器:

class QTouchEventFilter: public QObject
{
    Q_OBJECT
public:

    QTouchEventFilter(QObject *parent = 0) : QObject(parent)
    {
    }

    protected:

    bool eventFilter(QObject * p_obj, QEvent * p_event)
    {
        if (p_event->type() == QEvent::FocusIn ||
                p_event->type() ==   QEvent::CursorChange ||
                p_event->type() == QEvent::TouchBegin ||
                p_event->type() == QEvent::TouchUpdate ||
                p_event->type() == QEvent::TouchEnd ||
                p_event->type() == QEvent::TouchCancel||
                p_event->type() == QEvent::MouseButtonDblClick||
                p_event->type() == QEvent::MouseButtonPress ||
                p_event->type() == QEvent::MouseButtonRelease ||
                p_event->type() == QEvent::MouseMove ||
                p_event->type() == QEvent::MouseTrackingChange||
                p_event->type() == QEvent::Gesture
                )

        {
            qInfo()<<"----------------------"<<p_event->type();
            p_event->ignore();
            return true;
        }
        qInfo()<<"+++++++++++++++++++"<<p_event->type();
        return false;
    }
};
类QTouchEventFilter:公共QObject { Q_对象 公众: QTouchEventFilter(QObject*parent=0):QObject(parent) { } 受保护的: 布尔事件过滤器(QObject*p_对象,QEvent*p_事件) { 如果(p_事件->类型()==QEvent::FocusIn|| p_事件->类型()==QEvent::CursorChange|| p_事件->类型()==QEvent::TouchBegin|| p_事件->类型()==QEvent::TouchUpdate|| p_事件->类型()==QEvent::TouchEnd|| p_事件->类型()==QEvent::TouchCancel|| p_事件->类型()==QEvent::MouseButtonDblClick|| p_事件->类型()==QEvent::MouseButtonPress|| p_事件->类型()==QEvent::MouseButtonRelease|| p_事件->类型()==QEvent::MouseMove|| p_事件->类型()==QEvent::MouseTrackingChange|| p_事件->类型()==QEvent::手势 ) {
()哪个操作系统?我不认为这在QT中是可能的,因为至少在Windows 10中,这是由操作系统完成的-光标在触摸时移动,即使根本没有QT应用程序。该应用程序在Win10上,现在我已经阻止了光标的移动,但我如何才能禁用触摸事件?我很困惑。我很确定,
MousArea
有一个属性
uchEnabled
,但相反,它是具有属性
mouseEnabled
。也许可以使用这样一个
多点触摸区域
来捕捉触摸并防止其干扰?我不知道您的确切用例。也许您可以在上发布一个功能请求,以使其更易于将来使用。哪个操作系统?我不认为在QT中,至少在Windows 10中,这是由操作系统完成的-光标在触摸时移动,即使根本没有QT应用程序。该应用程序在Win10上,现在我已阻止光标移动,但如何禁用触摸事件?我很困惑。我很确定,
MousArea
有一个属性
touch enabled
,但是tead是将属性
鼠标启用的
。也许可以使用这样一个
多点触摸区域
来捕捉触摸并防止其干扰?我不知道您的确切用例。也许您可以在上发布一个功能请求,以便于将来使用。