2012-05-03 3 views
0

主なプログラムに組み込まれているオブジェクトがあり、それをQML Viewに渡しました。 Q_PROPERTYが定義されています。私はどのようにNOTIFY信号にイベントのリスナーを設定するのだろうか?QDeclarativeViewから受け取ったQMLオブジェクトにイベントリスナーを設定するにはどうすればよいですか?

+0

質問は少し不明です。 C++で定義されたプロパティから送出されたシグナルをQMLコードで処理するようにしますか? – teukkam

答えて

1

私が正しく理解していれば、this Qt DevNet forum postにはあなたに似た設定があります。その場合にのみ、READ関数を定義しており、関数はsomethingHappenedシグナルを送出します。実際の例の最後のコメントまでスクロールしてください。要約すると

、あなたはCで定義されているこのような何か++のヘッダファイルがあります。

class SomeClass : public QObject { 
Q_OBJECT 
    Q_PROPERTY(sometype someProperty READ getSomeProperty NOTIFY somePropertyChanged) 
signals: 
    void somePropertyChanged(); 
}; 
QML_DECLARE_TYPE(SomeClass) 

をあなたのC++ mainメソッドでは、このような何か:

qmlRegisterType<SomeClass>("SomeModule", 1, 0, "SomeClass"); 
SomeClass myObj; 
QDeclarativeView view; 
view.rootContext()->setContextProperty("rootItem", (SomeClass *)&myObj); 

その後QML側にあなたが扱うでしょうそれはこのようです:

import SomeModule 1.0 

SomeClass { 
    onSomePropertyChanged: { 
     // do stuff 
    } 
} 
関連する問題