Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 如何在任务栏中显示子窗口图标_Qt_Qml_Qtquick2 - Fatal编程技术网

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

Qt 如何在任务栏中显示子窗口图标,qt,qml,qtquick2,Qt,Qml,Qtquick2,我有一个这样的QML,当窗口显示时,childWindow图标不会显示在任务栏中。我的环境是Windows7。 在CPP设置中,我认为将childWindow的父窗口设置为0就足够了,这样两个窗口都是顶级的 但是如何在QML中实现这一点呢?如果您在QML中创建这样的对象,则会自动设置父对象,并且您只能通过使用parent-属性来更改可视父对象 要使用其他方式,您可以执行以下操作之一: 使用JS动态对象创建 在C中加载多个QML文件++ 前者可按如下方式进行: Window { Win

我有一个这样的QML,当窗口显示时,
childWindow
图标不会显示在任务栏中。我的环境是Windows7。 在CPP设置中,我认为将
childWindow
的父窗口设置为
0
就足够了,这样两个窗口都是顶级的


但是如何在QML中实现这一点呢?

如果您在QML中创建这样的对象,则会自动设置父对象,并且您只能通过使用
parent
-属性来更改可视父对象

要使用其他方式,您可以执行以下操作之一:

  • 使用JS动态对象创建
  • 在C中加载多个QML文件++
前者可按如下方式进行:

Window {
    Window {
        id: childWindow
    }
}
要销毁此文件,请调用mySecondWindow.destroy()。如果只删除引用,JS GC最终会处理它。如果它没有失败

后者可以通过向
main.cpp

property Window mySecondWindow: secondWindowComponent.createObject(null)
Component {
    id: secondWindowComponent
    Window {
        ...
    }
}

你可以这样做:

engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
请注意,当关闭
wnd1
时(主/根窗口),第二个窗口也会关闭
onClosing
句柄,以确保主窗口关闭时的正确或预期行为

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
    }
}