gpt4 book ai didi

javascript - 给一个属性赋一个变量,修改QML中的真实对象

转载 作者:太空宇宙 更新时间:2023-11-04 11:30:45 25 4
gpt4 key购买 nike

我创建了一个相当复杂的 UI 结构。 bool 类型在这里只是作为示例

Complicated
{
property bool object
function modify() { object = true }
// complicated and long stuff here
}

然后我像这样将它放入 UI(myvar 是一些 bool 变量,例如,从 C++ 和 myvar == false 中公开)

Column
{
// some UI elements
Complicated { id: comp; object: myvar }
// more UI elements
}
  1. 还没有发生任何事情,所以还是 myvar == false
  2. comp.modify() 被调用
  3. 现在 comp.object == true 但是 myvar == false

我应该怎么做才能使 comp.modify() 修改 myvar?在 C++ 中我会使用指针,但在 QML/JS 中没有指针?我正在使用 Qt5

谢谢!

最佳答案

开箱即用的双向绑定(bind)仍然是一个 Unresolved 问题:

Need two-way Binding support as alternative to alias

另请参阅该报告的拷贝:

Allow creating two way bindings in QML

您可以在 Jira 上找到“解决方法”,但它不是最佳选择。基本上,有两种解决方法:

  • 别名,但它是“硬”的,不是“软”的,也就是不可分解。

  • two-way Binding 组件的使用,但它破坏了一个可重用的组件,而且来回创建两个组件也很烦人。

在您的特定情况下,后者可能适用,因为 myvar 不是一个别名。试试这个:

Binding {
target: myCppClass
property: "myvar" value: comp.object
when: comp.completed
}

关于javascript - 给一个属性赋一个变量,修改QML中的真实对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24842286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com