2016-12-14 26 views
0

別のコンポーネントで2つのDelegateModelで同じモデルを使用しています。モデルに何かを追加すると、(0、0)rootIndexを持つDelegateModelがリフレッシュされますが、rootIndexを指定したDelegateModelはリフレッシュされません。 2番目のビューをもう一度開くと、デリゲートアイテムが表示されます。QMLビューで同じデータモデルの変更がリフレッシュされない

DelegateModel { 
    id: canvasModel 
    model: mymodel 
    rootIndex: model.index(0, 0) 
} 
Repeater { 
    id: canvasModel 
} 

そして、別のコンポーネントで

DelegateModel { 
    id: canvasModel2 
    model: mymodel 
    rootIndex: model.index(someIndex, 0, parentIndex) 
} 
Repeater { 
    id: canvasModel2 
} 

私はモデルのルートに何かを追加するとき、私はそれらの後、canvasModel2のルートインデックスの下に項目を追加する場合今では最初canvasModelに示すが、代理人はリフレッシュされません。 QDomDocumentをカプセル化するQtサンプルプロジェクトのDomModelクラスを使用しています 2番目のコンポーネントを再度ロードすると、デリゲートが正常に表示されます。 すべてのヘルプはそう問題は、私は二つのウィンドウでこれら2つのDelegateModelコンポーネントを使用していた

+0

モデルを正しく変更するために使用するメソッドが、ビューを更新するために信号を発するかどうかを確認しましたか? – derM

答えて

0

を理解されるであろう。 ApplicationWindowで使用されているモデルがモデル変更信号を取得し、ApplicationWindowの子として作成したものがイベントを受信しませんでした。だから問題は、子ウィンドウがApplicationWindowの直接の子ではなかったかもしれないが、多分破壊された未知の代理人の子でした​​。だから私はApplicationWindowの直接の子として2番目のウィンドウを作り、問題を解決しました。

関連する問題