在QML中重用委托组件



我在用QML设计应用程序时遇到了一个奇怪的问题。下面的代码可以工作:

TableView {
  itemDelegate: Item {
    function a() {}
    Loader {}
  }
}

我在这个item委托中有一堆函数、属性和加载器,它是一个item对象。当我尝试在ListView中重用这个委托时,问题就出现了。我不能像这样引用它:

Item {
    id: myitem
    function a() {}
    Loader {}
}
TableView {
   itemDelegate: myitem
}
error: Unable to assign QQuickItem to QQmlComponent

这是因为itemDelegateComponent:

http://qt-project.org/doc/qt-5/qml-qtquick-controls-tableview.html itemDelegate-prop

所以QML可以将Item转换为Component当它被嵌入,但不是当它被引用。

我不能让它成为一个组件,因为组件不能有函数,加载器,属性等。

如何重用委托?

解决方法:

Component {
   Item{...}
}

相关内容

  • 没有找到相关文章

最新更新