我们需要开发一个 QtQuick 项目,其中有大约 100 个屏幕。
我曾尝试为导航制作一个演示项目,该项目在按钮单击时具有三个屏幕。我在页面之间的导航中使用了“状态”的概念。最初我使用“加载器”尝试了相同的操作,但加载器无法保留页面的先前状态,它在导航期间重新加载了整个页面。
下面是 main.qml 的代码片段
// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
import QtQuick 1.1
Rectangle {
id:main_rectangle
width: 360
height: 640
Page1{
id:page1
}
Page2{
id:page2
}
Page3{
id:page3
}
states: [
State {
name: "page2"
PropertyChanges { target: page3; visible:false; }
PropertyChanges { target: page1; visible:false; }
PropertyChanges { target: page2; visible:true; }
},
State {
name: "page1"
PropertyChanges { target: page3; visible:false; }
PropertyChanges { target: page2; visible:false; }
PropertyChanges { target: page1; visible:true; }
},
State {
name: "page3"
PropertyChanges { target: page1; visible:false; }
PropertyChanges { target: page2; visible:false; }
PropertyChanges { target: page3; visible:true; }
}
]
}
这在具有三个屏幕的小型 POC 上运行良好,但为 100 个屏幕定义状态是不可行的。
从设计方面我们得出结论,要制作一个 C++ 控制器,我们可以控制各种页面的状态和可见性。
需要有关如何在 C++ 中实现“状态”逻辑的建议。