2016-12-14 105 views
0

變化,我使用相同的模型有兩種DelegateModel在單獨的部件。當我在模型中添加東西DelegateModel用(0,0)rootIndex被刷新,但在那裏我已經指定了一個rootIndex的DelegateModel不被刷新。當我再次打開第二個視圖時,它顯示委託項目。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 
} 

當我添加一些東西到模型,可以顯示在第一canvasModel但根,如果我canvasModel2的根指數下添加一個項目,然後那些代表不刷新。 我正在使用封裝QDomDocument Qt示例項目的DomModel類 如果我再次加載第二個組件,那麼委託顯示正常。 任何幫助將不勝感激

+0

您是否檢查過您用來更改模型的方法是否正確觸發信號以更新視圖? – derM

回答

0

所以問題

我曾在兩個窗口中使用了這兩種DelegateModel組件。一個用在ApplicationWindow中的模型改變了信號,並且我創建的ApplicationWindow子節點沒有收到事件。所以問題是,子窗口不是ApplicationWindow的直接孩子,但是,得到了也許摧毀了一些未知的代表的孩子。所以我將第二個窗口作爲ApplicationWindow的直接子節點並解決了問題。