Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 无法使用渐变Qml实现正确的不透明度_Qt_Qml_Gradient - Fatal编程技术网

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

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

我有一个白色的矩形,它的顶部和底部应该是20%的不透明度,有点褪色的效果。我使用十六进制值尝试了gradient属性,尝试了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"}
   }
}

这个代码对我来说很好用。您看到了什么问题?代码工作正常。但整个矩形的颜色似乎没有差别。我需要在顶部和底部有20%的不透明度。当我把它放在绿色矩形的顶部时,我会看到透明度。很好,但我的背景是白色的。所以没有太多明显的区别。在这种情况下该怎么办?那么你想在白色背景上画一个白色矩形?然后它就开始工作了。透明度只是通过显示白色背景。你希望看到什么呢?正如你之前的评论所理解的,这在白色背景下仍然不起作用,对吗?如果你的文本在它们之间,它将在白色背景下起作用。