如何在任务栏中显示子 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=]收盘。