QML矩形不透明度仅为颜色

时间:2014-10-14 15:33:01

标签: qml opacity

我想在我的Rectangle上只设置不透明度。但文本也变得透明。 我怎样才能为背景设置。

Rectangle {
                id: button
                color: "black"
                opacity: 0.3
                width: parent.width
                height: 35

                    Text {
                        anchors.centerIn: parent
                        text: qsTr("text")
                        color: "white"
                        font.pixelSize: 25
                        }
            }

1 个答案:

答案 0 :(得分:8)

documentation for opacity

中对此进行了解释
  

设置此属性后,指定的不透明度也会单独应用于子项。在某些情况下,这可能会产生意想不到的效果。例如,在下面的第二组矩形中,红色矩形指定了0.5的不透明度,这会影响其蓝色子矩形的不透明度,即使该子项未指定不透明度。

您可以移出Text项目:

Rectangle {
    id: button
    color: "black"
    opacity: 0.3
    width: parent.width
    height: 35
}

Text {
    anchors.centerIn: button
    text: qsTr("text")
    color: "white"
    font.pixelSize: 25
}

或者为Rectangle提供透明色而不是更改不透明度:

Rectangle {
    id: button
    color: "#33000000" // form: #AARRGGBB
    width: parent.width
    height: 35

    Text {
        anchors.centerIn: parent
        text: qsTr("text")
        color: "white"
        font.pixelSize: 25
    }
}