QML-StackView

import QtQuick.Controls 2.2
import QtQml 2.2
import QtQuick 2.9
ApplicationWindow {
    title: qsTr("Hello World")
     640
    height: 480
    visible: true

    Row{
        id:row;
        width: parent.width;
        height: 40;
        Button {
            id:btn1;
            text: "1"
            onClicked: {
                stack.push(mainView);

            }
        }
        Button {
            id:btn2;
            text: "2"
            onClicked: {
               stack.push(gView);
            }
        }
    }



    StackView {
        id: stack
         parent.width;
        height: parent.height-row.height;
        anchors.top:row.bottom;
        Component.onCompleted: {
            stack.push(gView);
            stack.push(mainView);
        }
    }

    Component {
        id: mainView;
        Main_struct{}
    }
    Component {
        id: gView;
        MyGuid{}
    }

}

删除、添加:

    function respondNodeClick(node_id)
    {
        if(100===node_id)//主页
        {
           for(var i=stack.depth;i>1;i--)
            {
                stack.pop();
            }
        }
        else if(101===node_id)//返回
        {
            if(stack.depth > 1)
            {
               stack.pop();
            }
        }
        else if(5===node_id)//显示频综/波形qml
        {
            stack.push(gView);
        }
    }

ps:

1、stackview是动态生成界面,如从1界面->2界面->1界面->2界面,2界面不会一直存在,而是被销毁,最后一次进入2界面后,会再次生成2界面,所以这种方式不太适合实时监控的界面