2016-05-20 57 views
0

2つのQMLファイルがあります。 PageOne.qmlおよびPageTwo.qml。 PageOw.qmlのPageOne.qmlの要素とPageOne.qmlのPageTwo.qmlの要素のプロパティとメソッドにアクセスしたい。 私はPageTwo.qmlで別のQMLファイルから1つのQMLファイルのプロパティへのアクセス、またはその逆

PageOne{ 
    id: pageOne 
} 

を含むことによってPageTwo.qmlからPageOne.qmlへのアクセスを得ることができます。ケーキの一片。

しかし、私は私の主な目標を達成するためにPageOne.qmlに

PageTwo{ 
    id: pageTwo 
} 

を追加した場合、私のアプリケーションが起動しません。私は間違いがない。 適切な方法は何ですか?

+0

.qmlファイルにPageOne.qmlを作成し、アイテム 'PageOne {}'を持っていて、PageTwo.qmlファイルに 'PageOne {}'を埋め込もうとすると、他のqmlアイテムと同じになります(あなたのPageTwo.qmlに埋め込む 'Rectangle {}'のように)。今、PageOne.qmlに 'PageTwo {}'(すでにPageOneアイテムが入っている)を埋め込もうとすると、再帰的になると思います。ビルド時にエラーは表示されません。しかし、展開しようとすると問題が発生します。 – user12345

+0

私はあなたがcppのロジックを持って、それぞれのqmlファイルでシグナル/スロットを使うことをお勧めします。 – user12345

+0

私はC++を使いません。pyothersideでPythonを使用しています。 – Marzanna

答えて

0

まあ、私はPageTwo.qmlその後

PageOne{ 
    id: pageOne 
    function myfunc(arg){ 
     idOfAnElementInPageTwo.func(arg) 
} 

で関数を宣言した私はPageOne.qml、それworkeからこの関数を呼び出しましたd!ですから、別のファイルでメソッドを変更/呼び出すメソッドを明示的に定義する必要があります。

0

ロジックをjsファイルに移動し、両方のqmlファイルに含めるだけです。

たとえば、次の内容のMyLogic.jsを作成することができます。

.pragma library 

function myPrettyComplexFunction(...) 
{ 
    ... 
} 

そして後でQMLファイルにあなたが含まれますと、このようにそれを使用するには:

import "MyLogic.js" as MyLogic 
... 
MyLogic.myPrettyComplexFunction(...) 
... 
関連する問題