在QML中设计我的应用程序时遇到了一个奇怪的问题 . 以下代码有效:
TableView {
itemDelegate: Item {
function a() {}
Loader {}
}
}
我在这个项目委托中有一堆函数,属性和加载器,它是一个Item对象 . 当我尝试在ListView中重用此委托时出现问题 . 我不能像这样引用它:
Item {
id: myitem
function a() {}
Loader {}
}
TableView {
itemDelegate: myitem
}
error: Unable to assign QQuickItem to QQmlComponent
这是因为 itemDelegate
是 Component
:
http://qt-project.org/doc/qt-5/qml-qtquick-controls-tableview.html#itemDelegate-prop
所以当引用's embedded, but not when it'时,QML可以将 Item
转换为 Component
.
我不能把它作为一个组件,因为组件不能有功能,加载器,属性等 .
我如何重用我的代表?
1 回答
通过将项目包装在组件内来解决: