【发布时间】:2021-05-03 09:35:57
【问题描述】:
我想在更改 QML 时保存变量的值,然后再次返回相同的 qml。我怎样才能做到这一点?当我打开相应的 QML 后,该值将归零。 我使用加载器从我的 main.qml 打开新的 qml。
RightButtons
{
MultiPointTouchArea
{
onPressed:
{
pageLoader.source="CTISpage.qml"
}
}
}
这是我的装载机
Loader
{
id:pageLoader
Connections
{
target:pageLoader.item
onBackButtonPressed:
{
pageLoader.source=""
}
}
}
所以当我按下按钮时,我设置了加载程序的新源并打开了页面,当我按下后退按钮时,我从新页面中将加载程序的源设置为一个空字符串并使其返回到我的 main.qml .
问题是:在新的 qml 中,我使用了一个布尔变量,我想在返回 main.qml 和返回这个 qml 之间保存它的值。但在这个过程中它一直归零。这是我的新 qml 的样子:
Item
{
id: CTISPage.qml
.
.
.
signal backButtonPressed()
property var isABSOffRoad:false
.
.
.
LeftButtons
{
MultiPointTouchArea
{
onPressed:
{
isABSOffRoad=!isABSOffRoad
if(ABSOffRoad)
{
//Do sth if it is true
}
}
}
}
}
当我按下按钮并将布尔 isABSOffRoad 变量设置为 true 时,当我返回 main 并再次返回此 qml 时,它会变为 false。我还尝试在 main 中声明布尔变量,然后从此 qml 中访问该变量。然而,结果是一样的。我还尝试打开一个新的 variables.qml 文件并在该 qml 中声明所有变量并从那里访问它们。但这也不起作用。我该如何解决这个问题?
【问题讨论】:
-
如果将变量放在main/variables.qml中,你是否将
isABSOffRoad绑定到那个源? -
我认为这个例子会在最丑资源的比赛中获得第一名,抱歉跑题了
标签: javascript qt qml