Window {
Window {
id: childWindow
}
}
我有这样的QML,当显示窗口时,childWindow
图标不显示在任务栏中。我的环境是Windows 7。
在CPP设置中,我认为将childWindow
的父级设置为0
以使两个窗口都处于最高级别就足够了。
但是如何在QML中做到这一点?
答案 0 :(得分:2)
你可以这样做:
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
句柄,确保主窗口关闭时的正确或预期行为。
答案 1 :(得分:1)
如果您在QML中创建这样的对象,则会自动设置父,并且您只能使用parent
更改可视父级 - 属性。
除此之外,您可以执行以下操作之一:
前者可以按如下方式完成:
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")));