你可以使用clipping(見performance docs)切斷一個圓角矩形的角落:
import QtQuick 2.5
import QtQuick.Window 2.2
Window {
width: 300
height: 300
visible: true
Item {
width: 100
height: 100
anchors.centerIn: parent
clip: true
Rectangle {
anchors.fill: parent
anchors.rightMargin: -radius
radius: 10
color: "navajowhite"
opacity: 0.5
}
}
}
你也可以使用layers避免交叉透明度問題:
import QtQuick 2.5
import QtQuick.Window 2.2
Window {
width: 300
height: 300
visible: true
Item {
width: 100
height: 100
opacity: 0.5
layer.enabled: true
anchors.centerIn: parent
Rectangle {
color: "navajowhite"
radius: 10
anchors.fill: parent
}
Rectangle {
color: "navajowhite"
anchors.fill: parent
anchors.leftMargin: 10
}
}
}
由於由@folibis提到,您也可以使用Canvas,其中已有類似的answer。
我認爲唯一的方法就是'Canvas' – folibis