【发布时间】:2014-07-31 14:48:36
【问题描述】:
我在使用 QML 设计我的应用程序时遇到了一个奇怪的问题。以下代码有效:
TableView {
itemDelegate: Item {
function a() {}
Loader {}
}
}
我在这个项目委托中有一堆函数、属性和加载器,它是一个项目对象。当我尝试在 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
因此,QML 可以在嵌入时将 Item 转换为 Component,但在引用时不能。
而且我不能让它成为一个组件,因为组件不能有函数、加载器、属性等。
如何重复使用我的委托?
【问题讨论】:
标签: qt qml qt5 qqmlcomponent