Qt 无法使用渐变Qml实现正确的不透明度
我有一个白色的矩形,它的顶部和底部应该是20%的不透明度,有点褪色的效果。我使用十六进制值尝试了gradient属性,尝试了Qt.rgba(),但似乎没有效果。是我做错了什么,还是有别的办法? 最低限度的代码如下所示:Qt 无法使用渐变Qml实现正确的不透明度,qt,qml,gradient,Qt,Qml,Gradient,我有一个白色的矩形,它的顶部和底部应该是20%的不透明度,有点褪色的效果。我使用十六进制值尝试了gradient属性,尝试了Qt.rgba(),但似乎没有效果。是我做错了什么,还是有别的办法? 最低限度的代码如下所示: Rectangle{ width: 400 height: 400 gradient: Gradient{ GradientStop{ position : 0 ; color: "#33FFFFFF" } Gradie
Rectangle{
width: 400
height: 400
gradient: Gradient{
GradientStop{ position : 0 ; color: "#33FFFFFF" }
GradientStop{ position : 0.4;color: "#FFFFFFFF"}
GradientStop { position : 0.8 ; color: "#33FFFFFF"}
}
}
根据你的编辑,我认为你的梯度是向后的。你想要中间不透明度0,顶部和底部100%。然后你想用这个矩形作为文本顶部的覆盖。我会这样做:
Rectangle{
width: 400
height: 400
gradient: Gradient{
GradientStop{ position : 0.0; color: "#FFFFFFFF" }
GradientStop{ position : 0.2; color: "#33FFFFFF" }
GradientStop{ position : 0.4; color: "#00FFFFFF"}
GradientStop{ position : 0.6; color: "#00FFFFFF"}
GradientStop{ position : 0.8; color: "#33FFFFFF"}
GradientStop{ position : 1.0; color: "#FFFFFFFF"}
}
}
这个代码对我来说很好用。您看到了什么问题?代码工作正常。但整个矩形的颜色似乎没有差别。我需要在顶部和底部有20%的不透明度。当我把它放在绿色矩形的顶部时,我会看到透明度。很好,但我的背景是白色的。所以没有太多明显的区别。在这种情况下该怎么办?那么你想在白色背景上画一个白色矩形?然后它就开始工作了。透明度只是通过显示白色背景。你希望看到什么呢?正如你之前的评论所理解的,这在白色背景下仍然不起作用,对吗?如果你的文本在它们之间,它将在白色背景下起作用。