QML如何根据条件创建不同的类型

bar*_*dao 2 qt qml qt5

我想知道根据 QML 代码中的条件创建矩形、文本或按钮的最佳方法是什么。

这是一个伪代码:

    import QtQuick 2.0

    Item{
        property string name = "rect" or "text" or "button"
        id:root

        if (name === "rect")
        Rectangle {
            //properties
            parent: root
        }

        else if (name === "text")
        Text {
            //properties
            parent: root
        }

        else if (name === "button")
        Button {
            //properties
            parent: root
        }
    }
Run Code Online (Sandbox Code Playgroud)

der*_*erM 7

用一个试试 Loader

Loader {
    property bool shouldBeText
    Component { id: rect; Rectangle {}}
    Component { id: text; Text {}}
    sourceComponent: shouldBeText ? text : rect
}
Run Code Online (Sandbox Code Playgroud)