如何在双击后打开新的 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
}
}
}
}
我错过了什么吗?谢谢!
更新:一些额外的信息:
- 我在 Windows 10 64 位
- 当我用 onClicked 替换 onDoubleClicked 时,window 按预期激活。
可能是 Windows 错误,在 Linux 中它工作正常。因此,解决方法是在打开 window.
几毫秒后使用计时器设置焦点
我正在尝试做一件看似简单的事情:双击一个 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
}
}
}
}
我错过了什么吗?谢谢!
更新:一些额外的信息:
- 我在 Windows 10 64 位
- 当我用 onClicked 替换 onDoubleClicked 时,window 按预期激活。
可能是 Windows 错误,在 Linux 中它工作正常。因此,解决方法是在打开 window.
几毫秒后使用计时器设置焦点