多级窗口可以通过动态组件进行实现,也可以通过loader加载。
然而,在此要注意窗口显示、隐藏的顺序;
1、当窗口层级为主窗口 - 子窗口A --- 子窗口B;
这种模式, A是B的父窗口,那么在进行显示时,必须先显示A,再显示B, 同时,在隐藏时,要先隐藏B,再隐藏A,如果先隐藏了A,再隐藏B,就会出现主窗口自动最小化到
状态栏的现象:
如果将主窗口传入A内,在动态创建B,同时指定B的父窗口为主窗口,那么在子窗口A关闭,而B隐藏的状态时,会出现B突然又显示出来了,而A正常关闭;
正确的做法是将A,B作为同级窗口,同时以主窗口作为父窗口,通过信号进行控制两个窗口的相关显示、隐藏关系;
main.qml
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 1.3
Window {
id: windows;
visible: true
width: 640
height: 480
title: qsTr("Hello World")
property var child;
Button{
id: test;
width: 70;
height: 30;
onClicked: test1.open();
}
Test1{
id: test1;
visible: false;
onShowTest:{
child.open();
this.close();
}
}