如何在任务栏中显示子窗口图标


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")));

最新更新