包装时ListView和组件中的其他东西,我通常这样做:
Item
{
property QtObject list_model: cpp_list_model
CustomListView { model: list_model }
}
这个结构允许我例如仅在list_model是上下文属性的情况下使用外部项,如果它在其他QML中实例化,则直接使用CustomListView。
我的同事说我宁愿使用var
代替QtObject
,因为像ListModel
这样的某些内容本身并不是QtObject
。是否有这种情况,或者我应该继续使用QtObject
,因为在这种情况下没有涉及QVariant
?
答案 0 :(得分:1)
如果您不想从c ++设置model
属性,为什么不用c ++上下文创建另一个组件文件? (如果从c ++实例化qml组件,我宁愿在c ++中这样做。)
而不是在Item
中包装,而是使用以下内容创建qml文件:
CustomListView {
model: cpp_list_model
}
使用这种更简单的方法,你不会有一个虚拟的Item
包装器,阻止你轻松访问ListView的几何和属性。