4

QML で呼び出し元オブジェクトへの参照を取得する方法はありますか? QMLの「this」ポインターに相当するものを見ています

例: ビデオ プレーヤーのシークバーなどのグラフィック要素のバックエンドとして機能するコンポーネントがあるとします。このバックエンドは、ビデオの現在および合計時間を入力として受け取り、グラフィカルなシークバーに定期的に更新を提供します。このバックエンドに、現在の期間と合計期間を送信するシグナルのシグナル ハンドラがある場合、次のようになります。

Connections {
  target: sender //this

  onSendSeekUpdate()
  {
    //do something
  } 
}

もちろん、これは C++ で実装して QML にインポートできると思います。しかし、QMLもこれをサポートしているかどうか疑問に思っていましたか? そのようなフックを QML ですぐに記述できるようにします。

4

1 に答える 1

4

QMLidでは、任意の QObject 派生型プロパティと同様にポインタとして any を使用できるため、コード例では、 を動的に変更targetConnection、シグナル ハンドラで同じ var を使用して送信者を指すことができます。

Connections {
    target: myitem; // change it when you need
    onMySignal: {
        target.doSomething(); // just use target here as it points on the listened object
        // it's just like 'sender()' in Qt/C++
    }
}

それがあなたが求めていたものかどうかはわかりませんが、私はあなたの説明を理解しようとしました;-)

于 2013-03-27T20:56:59.580 に答える