単一のLinearGradient
をバックグラウンドとして使用し、いくつかの兄弟に分けて欲しいRectangle
s。各Rectangle
には、グラデーションの別の部分が表示されます。 OpacityMask
を使用して、Rectangle
をグラディエントで«塗りつぶす»。 LinearGradient
の合計は、それぞれRectangle
width
です。複数の矩形に勾配をつける
私は単一のRectangle
を使用すると動作します。 2つから始まり、私が試してみても正しく動作しません(私は想像するために以下のコードにビットを残しています)。私がこれまで持っていた最高の結果は、それぞれRectangle
で繰り返されたLinearGradient
の同じ部分を持っていることです。 GradientStop
の値を変更してRectangle
に1つのLinearGradient
を使用することはできますが、複雑に見えますが、シンプルで洗練されたソリューションがあると思います。あなたは、ほとんどがあった
Rectangle
{
id: page1
// anchors.fill: parent
// id: masqCont
anchors.centerIn: parent
border.color: "blue"
width: childrenRect.width
height: childrenRect.height
visible: false
Rectangle
{
id: masq1
y:0
border.color: "red"
border.width: 10
width: 100
height: 100
radius: 40
Text {text: "Un"}
visible: true
}
Rectangle
{
x:width
id: masq2
border.color: "red"
border.width: 10
width: 100
height: 100
radius: 40
Text {text: "deux"}
Text {text: "deux"}
visible: true
}
}
LinearGradient {
id:grad
width: 200 //masqCont.childrenRect.width
height: 100//masqCont.childrenRect.height
//anchors.fill: masqCont
start: Qt.point(0, 0)
end: Qt.point(200,100)//masqCont.width, masqCont.height)
gradient: Gradient {
GradientStop { position: 0.0; color: "white" }
GradientStop { position: 1.0; color: "black" }
}
visible: false
}
OpacityMask {
id: om21
anchors.fill: page1;
source: grad
maskSource: page1;
}
// OpacityMask {
// id: om21
// anchors.fill: masq1;
// source: grad
// maskSource: masq1;
// }
// OpacityMask {
// id: om22
// anchors.fill: masq2;
// source: grad
// maskSource: masq2;
// }
// }
// }
ありがとう、それは私が探していたものです。私はこの種のコードが非常に迅速に書かれると期待しています。 –