繁体   English   中英

QML 定义了一个 object 属性

[英]QML defining an object property

我正在尝试在 QML 中创建 map,我发现这样做的唯一方法是:

    readonly property variant translate: { "Hello" : "123" }

然后在 QML 中,我可以使用以下方法获得 123:

    idOfItem.translate["Hello"]

这很好用,当我这样做时,我会根据需要返回“123”。 现在我想做的是定义另一个属性来替换可以在 QML 中使用的“Hello”,理想情况下是这样的:

    readonly property string strHello: "Hello"
    readonly property variant translate: { strHello : "123" }

然后在 QML 中:

    idOfItem.translate[idOfItem.strHello]

这不起作用,当尝试将 strHello 放入初始定义时,读取下划线出现在“:”下。

这可以解决吗?

这更像是一个 JavaScript 问题/问题。

可以使用动态属性名称创建 object,但不能在声明/初始化时创建。 您必须动态执行此操作,例如:

readonly property string strHello: "Hello"
property var translate: ({})

function populate() {
  translate[strHello] = "123";

  console.log(translate[strHello]);
}

Component.onCompleted: populate();

例如,请参阅以下问题,但请注意 QtQuick 不支持 ES6。 是否可以将动态命名的属性添加到 JavaScript object?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM