首页 > 解决方案 > 无法使用渐变 Qml 实现正确的不透明度

问题描述

我有一个白色矩形,其顶部和底部的不透明度应为 20%,有点褪色的效果。我通过使用十六进制值尝试了渐变属性,尝试了 Qt.rgba() 但似乎没有效果。是我做错了什么还是有其他方法?一个最小的代码如下:

Rectangle{
   width: 400
   height: 400
   gradient: Gradient{
     GradientStop{ position : 0 ; color: "#33FFFFFF" } 
     GradientStop{ position : 0.4;color: "#FFFFFFFF"}
     GradientStop { position : 0.8 ; color: "#33FFFFFF"}
   }
}

标签: qtqmlgradient

解决方案


根据您的编辑,我认为您的渐变是向后的。您希望中间的不透明度为 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"}
   }
}

推荐阅读