0

メインプログラムでインスタンス化したオブジェクトがあり、それを QML View に渡しました。が定義されていましたQ_PROPERTY。イベントリスナーをNOTIFYシグナルに設定する方法を教えてください。

4

1 に答える 1

1

私の理解が正しければ、この Qt DevNet フォーラムの投稿には、あなたと同様の設定があります。その場合にのみ、シグナル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++ のメイン メソッドで次のようにします。

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
    }
}
于 2012-05-03T10:06:07.403 に答える