我无法弄清楚如何连接到设置为ContextObject的对象中的信号,如果已将其设置为ContextProperty,则可以使用“target:”的上下文属性名称创建Connections {}元素: ”。但是ContextObject对象的名称是什么?
我有一个像这样的QObject:
class Model : public QObject
{
Q_OBJECT
Q_PROPERTY(bool featureActive READ featureActive NOTIFY featureActiveChanged)
...
我将它设置为我的视图的ContextObject,如下所示:
qmlRegisterUncreatableType<Model>("model_import_name", 1, 0, "Model");
...->rootContext()->setContextObject(model);
在QML中我可以通过属性名访问该属性,但无法弄清楚如何对已更改的信号做出反应: * .qml:
import model_import_name 1.0
...
visible: featureActive // Can access the getter! Great!
// Runtime error: Cannot assign to non-existent property "onFeatureActiveChanged"
onFeatureActiveChanged: { <do something> }
// Runtime error: QML Connections: Cannot assign to non-existent
//property "onFeatureActiveChanged"
Connections{
target: this
onFeatureActiveChanged: {
<do something>
}
}
有什么想法吗? ContextObject是否有(secret?)属性名称?当然有解决方法(onVisibleChange,onQmlDummyVariableBoundToFeatureActiveChanged等),但是没有真正的方法来连接这样的信号吗?