QML - 导入的 JS 对象不可通知
QML - Imported JS object not notifiable
我制作了一个包含对象的 JS 文件:
myObject {
myVar: "hello"
}
然后我在 QML 中导入:
import "myObject.js" as SomeObjects
Rectangle {
Text {
color: "red"
text: SomeObjects.myObject.myVar
}
}
但是如果我这样做 SomeObjects.myObject.myVar = "goodbye"
QML 中的文本组件将不会更新。所以这一定意味着 JS 对象是不可通知的。
使用 QML 在导入文件中存储通知变量的最佳方式是什么?
Javascript 对象没有 属性 绑定这样的功能。所以唯一的办法就是使用QML对象。如果你有任何JS计算,你可以把它放在不同的js文件中。
import "myObject.js" as SomeObjects
QtObject {
id: myObject
property string myVar: ""
function someCalculation () {
SomeObjects.somefunction(myVar);
}
}
Text {
text: myObject.myVar
}
Component.onCompleted: {
myObject.myVar = "Hello"
}
我制作了一个包含对象的 JS 文件:
myObject {
myVar: "hello"
}
然后我在 QML 中导入:
import "myObject.js" as SomeObjects
Rectangle {
Text {
color: "red"
text: SomeObjects.myObject.myVar
}
}
但是如果我这样做 SomeObjects.myObject.myVar = "goodbye"
QML 中的文本组件将不会更新。所以这一定意味着 JS 对象是不可通知的。
使用 QML 在导入文件中存储通知变量的最佳方式是什么?
Javascript 对象没有 属性 绑定这样的功能。所以唯一的办法就是使用QML对象。如果你有任何JS计算,你可以把它放在不同的js文件中。
import "myObject.js" as SomeObjects
QtObject {
id: myObject
property string myVar: ""
function someCalculation () {
SomeObjects.somefunction(myVar);
}
}
Text {
text: myObject.myVar
}
Component.onCompleted: {
myObject.myVar = "Hello"
}