QML / C ++可选属性

时间:2018-05-08 07:39:00

标签: c++ qml

如何声明仅在某个时间点存在的属性?

我的第一次尝试是实现一个方法getThingy(),如果它存在则返回指向thingy的指针,否则返回null。我会有一个信号通知属性何时发生变化。

Q_PROPERTY(Thingy* thingy READ thingy NOTIFY thingyChanged)

然而,当我在QML中访问它时,QML运行时一直在抱怨:

TypeError: Cannot read property 'thingy' of null

如果我想要一个可选的属性,那么QML的方式是什么呢?

1 个答案:

答案 0 :(得分:1)

您可以这样做,但正如您所见,您无法从null值访问属性。你必须首先检查它是否为非空。

这可以像在javascript中一样完成:

  • thingy ? thingy.property : defaultValue
  • thingy && thingy.property // returns null if thingy is null
  • ...