Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.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
创建除初始化外其属性为只读的QML类型? 我想在C++中实现QML类型。所述QML类型应该从组件或类似组件加载,如下所示: Component { id: jesseMaker JesseType { id: doge something: "wow" oops: 67 yes: "hurray" } }_C++_Qt_Qml_Qt Quick_Qproperty - Fatal编程技术网

创建除初始化外其属性为只读的QML类型? 我想在C++中实现QML类型。所述QML类型应该从组件或类似组件加载,如下所示: Component { id: jesseMaker JesseType { id: doge something: "wow" oops: 67 yes: "hurray" } }

创建除初始化外其属性为只读的QML类型? 我想在C++中实现QML类型。所述QML类型应该从组件或类似组件加载,如下所示: Component { id: jesseMaker JesseType { id: doge something: "wow" oops: 67 yes: "hurray" } },c++,qt,qml,qt-quick,qproperty,C++,Qt,Qml,Qt Quick,Qproperty,注意,这个初始化没有什么不寻常的地方但是,我还希望以下JavaScript在指定的点处无效: function somewhereElse() { var thing = jesseMaker.createObject(this, {"something": "yay"}); // OK thing.oops = 12; // Should be an ERROR, as if this Q_PROPERTY had no WRITE } 为了实现我的既定目标,我如何定义相关属性?您是

注意,这个初始化没有什么不寻常的地方但是,我还希望以下JavaScript在指定的点处无效

function somewhereElse() {
  var thing = jesseMaker.createObject(this, {"something": "yay"}); // OK
  thing.oops = 12; // Should be an ERROR, as if this Q_PROPERTY had no WRITE
}

为了实现我的既定目标,我如何定义相关属性?

您是否尝试过在
JesseType
组件中将
oops
属性设置为
readonly
?子类仍然可以覆盖
只读属性,但不能覆盖外部属性。只是一个想法!我想那是不可能的。如果是静态或动态创建,则属性可见性没有区别。因此,如果属性是只读的(您所期望的),您也不能在初始化时设置它。