如何使用setContextObject连接对象集中存在的QML中的信号

时间:2013-10-18 11:45:30

标签: c++ qt qml

我无法弄清楚如何连接到设置为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等),但是没有真正的方法来连接这样的信号吗?

0 个答案:

没有答案