cpp
import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.12
import QtGraphicalEffects 1.14
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
// 自定义Grid控件与OpacityMask的使用
Grid {
id: grid
width: 15
height: 200
columns: 3
x: 300
y: 100
visible: false //看不到了
Repeater {
// model: grid.width / 5 * grid.height / 5
model: grid.width / 5 * 200 / 5
Rectangle {
width: 5
height: 5
color: index % 2 ? "black" : "white"
Component.onCompleted: {
console.log("rect" + index)
}
}
}
}
Rectangle {
id: maskRect
x: 200
y: 100
width: grid.width
height: grid.height
visible: true
radius: 10
border.color: "red"
}
Button {
width: 50
height: 50
x: 100
y: 100
onClicked: {
grid.height -= 10
}
}
Rectangle{
width: grid.width + 4
height: grid.height + 4
// anchors.centerIn: parent
anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: parent.bottom
border.color: "red"
radius: 10
border.width: 3
OpacityMask {
source: grid
maskSource: maskRect
anchors.fill: parent
anchors.margins: 2
}
}
}