QML中JS文件中的模型

问题描述:

我可以将我的模型对象放在JS文件中,然后像共享模型一样重用吗? 它应该是这样的:QML中JS文件中的模型

//Models.JS 
var myModel = ListModel {} 

不,你不能在JS使用QML类型(我假设它是Qt 4.x的)。如果通过“重用”来表示共享(就像在全局变量中那样),则可以将模型放在全局上下文中作为上下文属性。见QDeclarativeContext::setContextProperty()。另一种选择是创建C++模型,其中所有实例将共享相同的状态。

如果你不想要一个全局实例,你可以在根元素中声明ListModel { id: myModel },并从子项(甚至在其他文件中声明)访问它。

Item { 
    ListModel { id: myModel } 
    Listview { 
     id: one 
     model: myModel 
    } 
    Listview { 
     id: two 
     model: myModel 
    } 
    // etc 
}