qml 在我切换之前不接受键盘事件 windows

qml does not accept keyboard event until i switch windows

我正在用 QML 开发某种视频播放器。我想通过键盘事件控制它,但问题是 qml 似乎不接受任何键盘事件,直到我切换 window 并返回应用程序 window。我试过 “焦点:真实” “启用:真”

和 “FocusScope:项目”

但对我没有任何作用

如果您使用 Shortcut,您应该禁用父页面中的快捷方式。

main.qml

ApplicationWindow 
{
    id:mainWindow

    Shortcut {
        id:backShortcut
        sequences: ["Esc", "Back"]

        onActivated: {
            console.log("Back Shortcut In main Page")
        }
    }
}

CustomPage.qml

Page{

    Component.onCompleted: {
        backShortcut.enabled=false
    }
    Component.onDestruction: {
        backShortcut.enabled=true
    }
    Shortcut {
        id:backShortcutCustomPage
        sequences: ["Esc", "Back"]
        onActivated: {
            console.log("Back Shortcut In Custom Page")
        }
    }
}
```

我通过追踪焦点解决了这个问题。问题是在 frame/page 切换期间我失去了焦点。因此,我通过 forceActiveFocus.

在每一帧启用它