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

时间:2016-12-06 05:33:20

标签: qt qml qtquick2

Window {
    Window {
        id: childWindow
    }
}

我有这样的QML,当显示窗口时,childWindow图标不显示在任务栏中。我的环境是Windows 7。 在CPP设置中,我认为将childWindow的父级设置为0以使两个窗口都处于最高级别就足够了。

但是如何在QML中做到这一点?

2 个答案:

答案 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更改可视父级 - 属性。

除此之外,您可以执行以下操作之一:

  • 使用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")));