当我需要在运行时中创建任何QML组件时,可以使用该指南:
http://qt-project.org/doc/qt-5/qtqml-javascript-dynamicobjectcreation.html

即只需调用Qt.createComponent和component.createObject

但是我找不到在运行时如何创建ListModel的方法?使用qml,而不是c++。

你可以问,为什么我需要它。因此,我有一个嵌套的ListModel:有外部模型,它委托(delegate)包含内部模型。因此,当我调用external_model.append({})时,我必须将新创建的ListModel传递给内部模型。我无法在外部委托(delegate)中使用静态定义的内部模型,因为无法在运行时访问此类模型。顺便说一句,可以以某种方式访问​​它吗?

P.S.尝试在javascript中管理模型也许是完全错误的主意?

最佳答案

试试这个:

Component {
    id: someComponent
    ListModel {
    }
}

function createModel(parent) {
    var newModel = someComponent.createObject(parent);
    return newModel;
}

关于javascript - 在QML中动态创建ListModel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25029180/

10-13 04:32