我想有一個比Rectangle
的默認垂直更具體的梯度。我嘗試添加一個LinearGradient
作爲對角線效果,但它會覆蓋邊框。QT QML如何將LinearGradient添加到帶邊框的矩形?
考慮這個例子。頂部Rectangle
確定垂直漸變和邊框。底部Rectangle
漸變覆蓋邊框和radius
。我試過clip
和gradient: LinearGradient
,但他們也沒有工作。
import QtQuick 2.7
import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.4
import QtGraphicalEffects 1.0
ApplicationWindow
{
visible: true
width: 640
height: 480
Column
{
spacing: 20
width: parent.width
Rectangle
{
width: 200
height: 200
border.width: 4
border.color: "#888"
radius: 10
// adds a vertical gradient to button
gradient: Gradient
{
GradientStop
{
position: 0
color: "#eee"
}
GradientStop
{
position: 1
color: "#ccc"
}
}
}
Rectangle
{
width: 200
height: 200
border.width: 4
border.color: "#888"
radius: 10
// try to add diagonal gradient, but overwrites button border
// also can't do, gradient: LinearGradient ?
LinearGradient
{
anchors.fill: parent
start: Qt.point(0,0)
end: Qt.point(parent.width,parent.height)
gradient: Gradient
{
GradientStop
{
position: 0
color: "#eee"
}
GradientStop
{
position: 1
color: "#ccc"
}
}
}
}
}
}
結果在此:
我能看到爲什麼會產生這樣的結果,但如何用radius
剪輯的漸變爲Rectangle
?
謝謝。
謝謝。這是答案。修復任何「半徑」邊界。我不得不添加例如'anchors.margins:rect1.radius',否則它可以工作。謝謝。 –