如何绑定到Javascript资源?
我是QML的新手,可能正在考虑错误的方法,但在下面的例子中,当我按下它时,我想按下按钮说“世界” .
main.qml
import QtQuick 2.0
import QtQuick.Controls 1.0
import "model.js" as Model
Button {
id: button
text: Model.text
onClicked: {
Model.text = "World";
print("Model.text is:", Model.text)
print("button.text is:", button.text)
// Model.text is "World"
// button.text is "Hello"
// They should both be "World"
}
}
model.js
var text = "Hello";
我也尝试使用 Qt.binding
,但它没有什么区别 .
main.qml
import QtQuick 2.0
import QtQuick.Controls 1.0
import "model.js" as Model
Button {
onClicked: {
Model.text = "World";
}
Component.onCompleted: {
text = Qt.binding(function () { return Model.text })
}
}
我正在寻找的最终结果是在专用的Javascript资源中具有属性,例如窗口高度,颜色和图像路径等,并且具有使用它们与对资源所做的任何更改保持同步的任何项目 .
Edit
1 回答
通常,您无法将QML属性绑定到纯JavaScript模块的变量 . 我的建议是使用轻量级QML替代方案 - QtObject . 您可以向其添加自定义属性和信号集,例如:
以后可以根据需要将此属性绑定 .