动态设置Label" id"属性

时间:2014-04-04 22:59:01

标签: qml qt5 sailfish-os

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

这是我的代码:

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

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

QML可以这样做吗?

提前致谢!

2 个答案:

答案 0 :(得分:1)

Qt doc说明了这一点。

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。

答案 1 :(得分:0)

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

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

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