无法使用渐变Qml实现正确的不透明度

Unable to achieve right opacity with gradient 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"}
   }
}

根据您的修改,我认为您的渐变是倒退的。您希望中间的不透明度为 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"}
   }
}