Window {
Window {
id: childWindow
}
}
我有这样的QML,当显示窗口时,childWindow
图标不会在任务栏中显示。我的环境是Windows 7。在CPP设置中,我认为将childWindow
的父级设置为0
足以使两个窗口成为最高级别。
但是如何在qml中做到这一点?
您可以做这样的事情:
Item
{
Window
{
id: wnd1
width: 200
height: 200
title: "Window1"
visible: true
onClosing: wnd2.close();
}
Window
{
id: wnd2
width: 200
height: 200
title: "Window2"
visible: true
}
}
请注意,当wnd1
关闭(主/根窗口)时,第二个关闭onClosing
手柄可确保主窗口关闭的正确或预期的行为。
如果在qml中创建一个对象,则会自动设置 parent ,并且只能通过使用 parent
-property。
否则,您可能会执行以下操作之一:
- 使用JS动态对象创建。
- 在C 中加载多个QML文件
前者可以如下完成:
property Window mySecondWindow: secondWindowComponent.createObject(null)
Component {
id: secondWindowComponent
Window {
...
}
}
要销毁它,请致电mySecondWindow.destroy()
。如果您仅删除参考,JS GC最终会处理该参考。如果没有失败。
可以通过在main.cpp
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));