【发布时间】:2021-05-10 09:39:51
【问题描述】:
我有很多页面,当单击按钮时,我会使用 StackView 在这些页面之间进行转换、推送和弹出。在这些页面中,当点击相应的按钮时,我将这些按钮设为红色。但是,当我按下并重新打开同一页面时,按钮不再是红色的。所以这让我认为 pop 和 push 会破坏并创建一个新页面,这与文档中所写的相反:
这意味着任何推送到 StackView 上的项目将永远不会被 被 StackView 销毁;只有 StackView 从中创建的项目 组件或 URL 被 StackView 销毁。
这里是stackview的代码:
Window{
id:main
property bool isAbsOffRoad: false
StackView{
id:contentFrame
initialItem:Qt.resolvedUrl("qrc:/MainPage.qml")
Connections{
target:contentFrame.currentItem
onBackButtonPressed:{
contentFrame.pop() }
}}
然后这是我的推动方式:
Item {
id:backgroundItem
LeftButtons{
id:buttonSettings
MultiPointTouchArea{
onPressed{
contentFrame.push("qrc:/SettingsPage.qml")}
}}
我看不出页面在弹出和推回时不保留其状态的原因。可能是什么原因?
另一个问题是:我得到一个
QML 连接:无法分配给不存在的属性 “onBackButtonPressed”。
但是,后退按钮可以工作。为什么会出现这个错误?
【问题讨论】: