当项目的 visible: 属性设置为 false 时,如何确保 Row {} 或 Column {} 不会收缩?

当项目的 visible: 属性设置为 false 时,如何确保 Row {} 或 Column {} 不会收缩?

这是一个关于使用 QML 进行良好编码实践的问题:

如何确保当某个 Item 的 visible: 属性设置为 false 时,Row {} 或 Column {} 不会收缩?

当前的解决方法很差,因为我将项目的高度设置为 0.0001。

答案1

如果您需要保持列大小,请不要使用该visible属性,最好将 Item 设置opacity0

例子:

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" }
      }
    }
}

结果:

在此处输入图片描述

相关内容