qt - QML 用户控件中的双向绑定
问题描述
我正在制作一个具有属性的用户控件,我使用函数对其进行修改。该属性绑定到 Main.qml 文件中的另一个属性。在实际项目中,它绑定到 ViewModel 的属性。我需要有一个双向绑定,允许我从 qml 视图更改 ViewModel 的属性和从视图模型更改视图的属性。
主要.qml:
property int myProperty: 0
Column {
MyControl {
value: myProperty
}
MouseArea {
width: 200; height: 100
onClicked: myProperty = 0
}
}
MyControl.qml:
Item {
id: root
property int value: 0
Row {
MouseArea {
width: 100; height: 100
onClicked: root.value++
}
MouseArea {
width: 100; height: 100
onClicked: root.value--
}
}
}
但事实上,当我用 更改 MyControl 的value
属性时root.value++
,它会破坏绑定并且更改停止在属性之间传递。
有没有办法以声明的方式实现它,而无需通过 ...Changed 信号进行交叉设置?
解决方案
推荐阅读
- java - 如何使用 spring data Criteria builder 组合“not”运算符
- dask - 在不返回 np 数组的 dask 块上并行计算的最佳方法?
- docker - 健康状况为黄色的 Elasticsearch 索引
- javascript - 同步功能没有相应地工作
- vue.js - 如何使用 vue js 在 tinymce 编辑器中插入内容?
- ios - 动画第一次工作,但后来
- javascript - 根据选项菜单 1 或 2 中的选择隐藏或显示选项菜单
- powerbi - 在 Power BI 中在线发布的权限
- python - 多处理未运行
- javascript - 在 JavaScript 中根据我的生日获取 REAL_AGE