我想知道基于我的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
}
}
答案 0 :(得分:3)
尝试使用Loader
Loader {
property bool shouldBeText
Component { id: rect; Rectangle {}}
Component { id: text; Text {}}
sourceComponent: shouldBeText ? text : rect
}
答案 1 :(得分:0)
您可以使用回答“ derM”的装载程序,也可以“创建”所有项目并设置可见性:
Item{
property string name = "rect" or "text" or "button"
id:root
Rectangle {
//properties
visible: root.name === "rect"
}
Text {
//properties
visible: root.name === "text"
}
Button {
//properties
visible: root.name === "button"
}
}