首页 > 解决方案 > 带有将焦点转移到其父级的 MouseArea 的 Qml 窗口

问题描述

我想在应用程序窗口的一部分上创建一个用于播放视频的窗口。它应该有一个正常运行的 MouseArea,但ApplicationWindow在单击它时将焦点转移到其父级 ( ),就像单击其父级一样。目前,我将标志设置如下;

flags: Qt.Window | Qt.FramelessWindowHint | Qt.WindowDoesNotAcceptFocus | Qt.WindowStaysOnBottomHint

通过设置 Qt.WindowDoesNotAcceptFocus 标志,窗口不接受焦点但也不将焦点传递给其父级。但是,如果我设置Qt.WindowTransparentForInput窗口确实将焦点传递给其父级,则该窗口上的所有 MouseArea 都将被禁用。

我检查了Qt WindowType Flags但找不到解决方法。你们中有人提出解决方案吗?

标签: qtqml

解决方案


在黑暗中猜测 - 你想要这样的东西:

Window {
    id: win
    width: 600
    height: 600
    visible: true

    ApplicationWindow {
        id: someWin
        property Window parentWin: win
        width: 600
        height: 300
        visible: true
        MouseArea {
            anchors.fill: parent
            onClicked: {
                someWin.parentWin.requestActivate()
            }
        }
    }
}

如果不是,请澄清您所说的“转移焦点”是什么意思,或者您到底想达到什么目的。考虑图像和代码示例,以帮助我们的想象力理解您的问题。


推荐阅读