如何在双击后打开新的 window 使其变为活动状态?

How to open new window after doubleclick so that it becomes active?

我正在尝试做一件看似简单的事情:双击一个 window 后,我想打开第二个顶级(非模态)window 并激活它。但是,无论我做什么,第二个 window 都不会被激活,焦点仍然在第一个 window 中。

这是一个最小的例子:

import QtQuick 2.11
import QtQuick.Controls 2.4

ApplicationWindow {
    id: root
    height: 480
    width: 640
    visible: true

    MouseArea {
        anchors.fill: parent
        onDoubleClicked: {
            var w = otherWindowComponent.createObject(root)
            w.show()
            w.requestActivate() // same effect when removed
        }
    }

    Component {
        id: otherWindowComponent
        ApplicationWindow {
            id: child
            width: 400
            height: 300

            Rectangle {
                color: "blue"
                width: 100
                height: 100
                focus: true
            }
        }
    }
}

我错过了什么吗?谢谢!

更新:一些额外的信息:

  1. 我在 Windows 10 64 位
  2. 当我用 onClicked 替换 onDoubleClicked 时,window 按预期激活。

可能是 Windows 错误,在 Linux 中它工作正常。因此,解决方法是在打开 window.

几毫秒后使用计时器设置焦点