还有一种方法就是qml单例,不过似乎添加可以,修改单例变量会莫名奇妙编译错误,然后又莫名奇妙好了...还没理解,有大神知道解释下。
代码:
注册单例到元对象:
qmlRegisterSingletonType(QUrl("qrc:/GlobalProperty.qml"), "tool.addInfo.Global", 1, 0, "GlobalVar");
单例qml文件代码
pragma Singletonimport QtQuick 2.7
QtObject {
property int pageFlag: -1;
property bool contentChanged: false;
property color mainColor:"#37906f";
property var qmlPageArr: ["xx.qml","xx2.qml"];
}
使用:先导入import tool.addInfo.Global 1.0
Rectangle {
property int iPageFlag: GlobalVar.pageFlag;
Loader{ id:rightPageLoader; anchors.fill: parent; }
onIPageFlagChanged:
{
rightPageLoader.setSource(GlobalVar.qmlPageArr[iPageFlag]);
}
}