2016-12-14 100 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的直接子节点并解决了问题。