这是一个关于使用 QML 进行良好编码实践的问题:
如何确保当某个 Item 的 visible: 属性设置为 false 时,Row {} 或 Column {} 不会收缩?
当前的解决方法很差,因为我将项目的高度设置为 0.0001。
答案1
如果您需要保持列大小,请不要使用该visible
属性,最好将 Item 设置opacity
为0
:
例子:
import QtQuick 2.0
Rectangle {
width: 200
height: 200
Column { /* outer column */
spacing: 10
Text { text: "Column Element"}
Column { /* inner column */
x: 10; y: 10
spacing: 10
Rectangle { width: 40; height: 20; color: "red" }
Rectangle { width: 40; height: 20; color: "green" }
Rectangle { width: 40; height: 20; color: "blue"; opacity: 0 }
}
Text { text: "Row Element" }
Row { /* inner row */
spacing: 10
Rectangle { width: 40; height: 20; color: "red" }
Rectangle { width: 40; height: 20; color: "green" }
Rectangle { width: 40; height: 20; color: "blue" }
}
}
}
结果: