我应该使用QtObject或var作为(中间)“模型”属性类型吗?

时间:2016-11-02 11:38:52

标签: qt qml var

包装时ListView和组件中的其他东西,我通常这样做:

Item
{
    property QtObject list_model: cpp_list_model

    CustomListView { model: list_model }
}

这个结构允许我例如仅在list_model是上下文属性的情况下使用外部项,如果它在其他QML中实例化,则直接使用CustomListView。

我的同事说我宁愿使用var代替QtObject,因为像ListModel这样的某些内容本身并不是QtObject。是否有这种情况,或者我应该继续使用QtObject,因为在这种情况下没有涉及QVariant

1 个答案:

答案 0 :(得分:1)

如果您不想从c ++设置model属性,为什么不用c ++上下文创建另一个组件文件? (如果从c ++实例化qml组件,我宁愿在c ++中这样做。)

而不是在Item中包装,而是使用以下内容创建qml文件:

CustomListView {
    model: cpp_list_model
}

使用这种更简单的方法,你不会有一个虚拟的Item包装器,阻止你轻松访问ListView的几何和属性。