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界面,所以这种方式不太适合实时监控的界面