我创建了一个非常复杂的UI结构。类型bool
仅作为示例
Complicated
{
property bool object
function modify() { object = true }
// complicated and long stuff here
}
我把它放到这样的UI中(myvar
是一些布尔变量,比如说,从C ++和myvar == false
公开)
Column
{
// some UI elements
Complicated { id: comp; object: myvar }
// more UI elements
}
myvar == false
comp.modify()
被称为comp.object == true
但myvar == false
我应该怎样做才能comp.modify()
修改myvar
?在C ++中,我使用指针,但QML / JS中没有指针?我使用的是Qt5
谢谢!
答案 0 :(得分:1)
开箱即用的双向绑定仍然是一个未解决的问题:
Need two-way Binding support as alternative to alias
另见该报告的副本:
Allow creating two way bindings in QML
你可以找到一个"解决方法"在Jira,但它不是最理想的。基本上,有两种解决方法:
别名,但它是"硬",不是"软",这意味着它无法分解。
双向绑定组件的使用,但它破坏了可重用的组件,并且前后创建两个组件也很烦人。
在您的具体情况下,可能后者适用,因为myvar不是别名。试试这个:
Binding {
target: myCppClass
property: "myvar" value: comp.object
when: comp.completed
}