如何在任务栏中显示子 Window 图标
How to display child Window icon in task bar
Window {
Window {
id: childWindow
}
}
我有一个这样的 QML,当显示 window 时,childWindow
图标不会显示在任务栏中。我的环境是Windows7。
在 CPP 设置中,我认为将 childWindow
的父级设置为 0
就足以让 windows 成为顶级。
但是如何在 QML 中做到这一点?
如果你像这样在 QML 中创建一个对象,parent 会自动设置,你只能通过以下方式更改 visual parent使用 parent
-属性.
否则,您可以执行以下操作之一:
- 使用 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")));
你可以这样做:
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
关闭 (main/root window) 时,第二个也会关闭 onClosing
句柄确保 main [ 上的正确 - 或预期 - 行为=18=]收盘。
Window {
Window {
id: childWindow
}
}
我有一个这样的 QML,当显示 window 时,childWindow
图标不会显示在任务栏中。我的环境是Windows7。
在 CPP 设置中,我认为将 childWindow
的父级设置为 0
就足以让 windows 成为顶级。
但是如何在 QML 中做到这一点?
如果你像这样在 QML 中创建一个对象,parent 会自动设置,你只能通过以下方式更改 visual parent使用 parent
-属性.
否则,您可以执行以下操作之一:
- 使用 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")));
你可以这样做:
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
关闭 (main/root window) 时,第二个也会关闭 onClosing
句柄确保 main [ 上的正确 - 或预期 - 行为=18=]收盘。