簡體   English   中英

Qt Qml-如何在其定義中使用組件?

[英]Qt qml - how to use component in its definition?

我必須在qml實現TreeView 基本上因為每個子樹都只是TreeView本身,所以我想在TreeView定義中使用TreeView組件(這是最后的Repeater )。

這是代碼的一部分,其中引用了我正在定義的組件。

您可以看到rootDelegate實際上是Component id

問題是Qt提供錯誤無法將QQuickRow分配給QQmlComponent

 Repeater {
    model: childrens
    delegate: rootDelegate
 }

TreeView.qml

import QtQuick 2.0


Component {

    id: rootDelegate

    Column {

        Row {

            id: itemControl
            spacing: 2

            Rectangle {

                anchors.verticalCenter: parent.verticalCenter

                gradient: Gradient {
                    GradientStop { position: 0.0; color: "#EEEEEE" }
                    GradientStop { position: 1.0; color: "#404040" }
                }

                width: openChar.implicitWidth
                height: openChar.implicitHeight - 6
                radius: 3

                MouseArea {
                    anchors.fill: parent
                    cursorShape: Qt.PointingHandCursor
                }

                Text {
                    id: openChar
                    text: "+"
                    color: "black"
                    anchors.centerIn: parent
                }
            }

            Rectangle {
                height: 1
                color: "#A0A0A0"
                width: 10
                anchors.verticalCenter:  parent.verticalCenter
            }

            Text {
                text: model.text
                color: "white"
            }

        }

        Repeater {
            model: childrens
            delegate: rootDelegate
        }
    }
}

您正在嘗試遞歸使用Сomponent,但Qml不允許使用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM