QML鼠标区域失去释放鼠标按钮的焦点



在我的程序中,屏幕上有多边形,您可以拖动它们的侧面,顶点或整个多边形。我想向用户显示鼠标处于当前位置时将发生的情况。为此,我需要鼠标区域的onPositionChanged事件处理程序。

拖动工作正常,问题是鼠标区域在释放鼠标的那一刻失去了焦点,因此当用户不按鼠标按钮时,我无法调用我的onPositionChanged函数。

悬停启用在我的鼠标区域中设置为 true。似乎其他对象一直在窃取焦点,但我将 preventStealing 设置为 true,将焦点设置为 true,并在整个项目中寻找"焦点"一词,并删除了会窃取焦点的每一行项目中也没有 focusScope。
示例代码:

MouseArea
{
    hoverEnaled: true
    focus: true
    preventStealing: true
    ...
    onPositionChanged:
    {
        doStuff();
        //Works fine while mouse button is pressed. Doesn't get called when it's released 
    }
    Component.onCompleted: forceActiveFocus();
    ...
}

我想通了!在进入我的多边形屏幕之前,程序中有一个弹出窗口,它被不正确地关闭(而不是popup.close()popup.visible = false; popup.destroy();被使用)。以正确的方式关闭它解决了我的问题。

最新更新