2

我正在使用 QML 语言为 SailfishOS 开发应用程序。我想id通过使用if条件动态设置标签的属性。

这是我的代码:

    Label {
        id: {
            if(myBool == false) {
                thisText()
            } else {
                notThatText()
            }
        }
        width: parent.width
        horizontalAlignment: Text.AlignRight
        text: ""
        font.pixelSize: Theme.fontSizeLarge
    }

这段代码被放入我的CoverPage.qml文件中,该文件在后台显示应用程序封面上的内容。通过这样做,封面只是黑色,没有任何显示。

QML 有可能做到这一点吗?

提前致谢!

4

2 回答 2

2

Qt 文档这样说。

While it may look like an ordinary property, the id attribute is not an ordinary property attribute, and special semantics apply to it;

您不能在运行时设置 QML 组件的 id。(如果我错了,请纠正我)。您可能会发现objectName属性很有用。但是我不明白您为什么要尝试分配动态ID。

于 2014-04-06T09:22:00.427 回答
1

我有一个用例,使用动态/特定 id 可能很有用。id 可以用 Gammaray 查看,它可以帮助调试。

GridLayout {
  id: layout
  Repeater {
    model: foo
    Bar {
      id: bar_X_Y // bar_{model.row}_{model.column}
    }     
  }
}

但据我所知,这是不可能的。

于 2019-04-30T09:07:53.960 回答