在本页

CalendarModel QML Type

日历模型更多

Import Statement: import QtQuick.Controls

属性

方法

详细说明

CalendarModel 提供了一种创建一系列MonthGrid 实例的方法。它通常用作ListView 的模型,该 使用MonthGrid 作为委托。

ListView {
    id: listview

    width: 200; height: 200
    snapMode: ListView.SnapOneItem
    orientation: ListView.Horizontal
    highlightRangeMode: ListView.StrictlyEnforceRange

    model: CalendarModel {
        from: new Date(2015, 0, 1)
        to: new Date(2015, 11, 31)
    }

    delegate: MonthGrid {
        width: listview.width
        height: listview.height

        month: model.month
        year: model.year
        locale: Qt.locale("en_US")
    }

    ScrollIndicator.horizontal: ScrollIndicator { }
}

除了index 属性外,每个委托的上下文中还提供了一系列模型数据角色:

model.month: int月份的数字
model.year: int年的编号

Qt Quick 控件中的日历相关类型使用基于 0 的月份数字,就像 JavaScript Date 对象一样。不过,这与QDate 不同,后者的月份编号从 1 开始。

为避免混淆,您可以使用以下枚举值:

常量说明
Calendar.January一月 (0)
Calendar.February二月 (1)
Calendar.March三月 (2)
Calendar.April四月 (3)
Calendar.May五月 (4)
Calendar.June六月 (5)
Calendar.July七月 (6)
Calendar.August八月 (7)
Calendar.September九月 (8)
Calendar.October十月 (9)
Calendar.November十一月 (10)
Calendar.December十二月 (11)

另请参见 MonthGridCalendar

财产文件

from : date

该属性保存开始日期。

to : date

该属性包含结束日期。

方法文档

int indexOf(Date date)

返回指定date 的模型索引。

int indexOf(int year, int month)

返回指定yearmonth 的模型索引。

int monthAt(int index)

返回指定型号的月份编号index

int yearAt(int index)

返回指定型号的年号index

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.