Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QML/C++;可选属性_C++_Qml - Fatal编程技术网

C++ QML/C++;可选属性

C++ QML/C++;可选属性,c++,qml,C++,Qml,如何声明仅在某个时间点存在的属性 我的第一次尝试是实现一个方法getThingy(),如果thingy存在,则返回一个指向它的指针,否则返回null。我会有一个信号,当属性改变时通知 Q_PROPERTY(Thingy* thingy READ thingy NOTIFY thingyChanged) 但是,当我在QML中访问此项时,QML运行时会不断抱怨: TypeError: Cannot read property 'thingy' of null 如果我想要一个可选属性,那么QML是

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

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

Q_PROPERTY(Thingy* thingy READ thingy NOTIFY thingyChanged)
但是,当我在QML中访问此项时,QML运行时会不断抱怨:

TypeError: Cannot read property 'thingy' of null

如果我想要一个可选属性,那么QML是如何声明它的?

您可以这样做,但正如您所看到的,您不能从
null
值访问属性。您必须先检查它是否为非null

这与javascript中的操作相同:

  • 什么?thingy.property:defaultValue
  • thingy&&thingy.property//如果thingy为null,则返回null

我知道这一点,但这可能不是QML中的最佳实践(访问null属性会在运行时发出警告)。QML中是否有可选属性的概念?访问空值的属性会在运行时发出警告,但上面的代码段没有说明。不,在QML中没有可选属性的概念(除了像您这样的可空属性)。