带有MouseArea的Qml窗口,可将焦点转移到其父对象

时间:2018-09-18 08:20:43

标签: qt qml

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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()
            }
        }
    }
}

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