我可以将我的Models对象放在JS文件中,然后像共享模型一样重用吗? 它应该如下所示:
//Models.JS var myModel = ListModel {}Can I put my Models-objects in JS file, and then reuse like a shared model? It should look like this:
//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 }No, you cannot use QML types in JS (I assume it is Qt 4.x). If by "reuse" you mean share (like in global variable), you can put your model in global context as a context property. See QDeclarativeContext::setContextProperty(). Another option would be create C++ model, where all instance would share same state.
If you don't want to have a single global instance, you can declare ListModel { id: myModel }in root element, and access it from children (even declared in other files).
Item { ListModel { id: myModel } Listview { id: one model: myModel } Listview { id: two model: myModel } // etc }更多推荐
发布评论