【发布时间】:2016-10-02 23:09:36
【问题描述】:
我有一个带有一个“矩形”和一个“图像”的 Qml 文件。我想根据 my.cpp 文件中设置的属性加载任何一个。
请帮我找到一个最好的方法来做到这一点。
实际上,我可以想到两种可能的方法来做同样的事情: 1)第一种方法是在各自的 QML 中定义元素(图像和矩形),并从 my.cpp 文件控制它们的可见性。我可以有一个属性,这个属性可以控制两者中任何一个的可见性。这种方法的缺点是即使只需要显示一个元素,也会创建两个。
2) 第二种方法是我们可以有两个组件,并根据 my.cpp 中设置的属性使用“Loader”加载其中一个。
例如:
' 零件 { 编号:img 图片 { 编号:我的图像 来源:currentdir + "/img_production/Separator/myImage.png" 宽度:10 身高:79 } }
Component
{
id:rect
Rectangle
{
id:re
height: 82
width: 10
color: "#FFFFFF"
}
}
Loader
{
id: itemDisplay
sourceComponent: style.flag? rect : img
anchors.fill: parent.fill
}
' 寻求一些专家的建议。
PS:style.flag 是 my.cpp 为 Qml 设置的属性。
【问题讨论】: