8

C++のキーワードと同様にthis、QML 要素を使用して自分自身を JS 関数に渡すか、別の要素のプロパティを自分自身に設定したいと考えています。これは可能ですか?

例えば:

Rectangle{
id:theParent

property var theElement

SomeElement{
id:theChild
   MouseArea {
        anchors.fill:parent
        onClicked: {
            someJsFunction(*whatGoesHere*)
            parent.theElement=*whatGoesHere*
        }
    }

または、これを考慮してください:

Rectangle{
id:theParent

property var theElement

SomeElement{
id:theChild
    }

次に、SomeElement.qml で:

Rectangle{
   MouseArea {
        anchors.fill:parent
        onClicked: {
            someJsFunction(*whatGoesHere*)
            parent.theElement=*whatGoesHere*
        }
}
}

この場合、*whatGoesHere*これらが呼び出されている SomeElement のインスタンスになります。

これはQMLで可能ですか?プロパティは理にかなっていると思いますが、ドキュメントによると、フィールドidの値を照会することはできません。とにかく、私のものが別のファイルに記述されていて、上記のwhatGoesHere処理がその別のファイルに表示されている場合は利用できません特定のインスタンスではなくファイル。ididSomeElement

4

3 に答える 3

0

要素を別のファイルで定義する場合は、単純に を割り当ててid使用できます。そのインスタンスのコンテキスト内でのみ有効になります。

SomeElement.qml

Rectangle{
   id: thisElement
   MouseArea {
        anchors.fill: parent
        onClicked: {
            someJsFunction(thisElement);
            parent.theElement = thisElement;
        }
   }
}
于 2013-11-06T18:06:10.333 に答える
0

あなたのインスタンスは、SomeElementそのidプロパティ値theChildです。としてお使いいただけますthis。私が知る限り、他の組み込みの方法は存在しません。ただし、 を返すプロパティを使用して、独自の QML アイテム階層を追加することができますthis

もう 1 つの方法は、ある親の子を取得して使用することです。したがって、子を取得し、必要な子を見つけて、その特定のインスタンスを使用します

于 2013-11-05T06:40:28.480 に答える