Item {
id: rootItem
Calendar{
id:the_calendar
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: splitRec.top
style: CalendarStyle {
id: _calendarStyle
gridVisible: true
dayDelegate: Rectangle
{
opacity: styleData.visibleMonth? 1:0.3
color: "red"
radius: 6
DescriptionText {
text: styleData.date.getDate()
anchors.centerIn: parent
font.pixelSize: 12
color: "red"
}
}
}
}
}
比如我们写了上面的 日历控件,日历控件用了style ,它里面有个 dayDelegate,这时,我们想用这个日历控件作为 基础控件,继承它做出新的 日历控件,这时候需要 外部赋值自定义 dayDelegate,怎么做呢?
Item {
id: rootItem
property Component dayDelegate: null
Calendar{
id:the_calendar
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: splitRec.top
style: CalendarStyle {
id: _calendarStyle
gridVisible: true
dayDelegate: rootItem.dayDelegate === null? defaultDayDelegate : rootItem.dayDelegate
}
}
Component {
id: defaultDayDelegate
Rectangle
{
visible: styleChoice===CalendarBox.StyleChoice.OnceClick
opacity: styleData.visibleMonth? 1:0.3
color: "red"
radius: 6
DescriptionText {
text: styleData.date.getDate()
anchors.centerIn: parent
font.pixelSize: 12
color: "red"
}
}
}
}
这样写,就可以暴露 Delegate给外部,让外部自定义 Delegate