Reusing a delegate component in QML
-
0 down vote favorite
I came across a weird problem when designing my application in QML. The following code works:
@TableView {
itemDelegate: Item {
function a() {}
Loader {}
}
}
@
I have a bunch of functions, properties, and loaders in this item delegate which is an Item object. Problems arise when I try to reuse this delegate in a ListView. I can't reference it like this:
@
Item {
id: myitem
function a() {}
Loader {}
}TableView {
itemDelegate: myitem
}error: Unable to assign QQuickItem to QQmlComponent@
This is because itemDelegate is a Component:
http://qt-project.org/doc/qt-5/qml-qtquick-controls-tableview.html#itemDelegate-prop
So QML can convert an Item to Component when it's embedded, but not when it's referenced.
And I can't make it a component, since components can't have functions, loaders, properties etc.
How can I reuse my delegate?