首页 文章

在QML中重用委托组件

提问于
浏览
2

在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

这是因为 itemDelegateComponent

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

所以当引用's embedded, but not when it'时,QML可以将 Item 转换为 Component .

我不能把它作为一个组件,因为组件不能有功能,加载器,属性等 .

我如何重用我的代表?

1 回答

  • 4

    通过将项目包装在组件内来解决:

    Component {
       Item{...}
    }
    

相关问题