MonthGrid QML类型

日历月份的一个日网格。更多...

导入声明import QtQuick.Controls
继承

Control

属性

信号

详细描述

MonthGrid以网格形式显示日历月份。内容是根据指定的月份和年份以及区域来计算的。

MonthGrid {
    month: Calendar.December
    year: 2015
    locale: Qt.locale("en_US")
}

MonthGrid可以用作独立控件,但通常与DayOfWeekRowWeekNumberColumn一起使用。无论使用场景如何,网格的定位由用户负责。

GridLayout {
    columns: 2

    DayOfWeekRow {
        locale: grid.locale

        Layout.column: 1
        Layout.fillWidth: true
    }

    WeekNumberColumn {
        month: grid.month
        year: grid.year
        locale: grid.locale

        Layout.fillHeight: true
    }

    MonthGrid {
        id: grid
        month: Calendar.December
        year: 2015
        locale: Qt.locale("en_US")

        Layout.fillWidth: true
        Layout.fillHeight: true
    }
}

通过实现一个自定义代理可以改变MonthGrid的视觉外观。

查看任何给定的月份时,MonthGrid将显示前一个月和下一个月的天。这意味着它始终显示六行,即使第一行或最后一行完全位于相邻月份中。

本地化天

要本地化天,请使用Locale.toString。例如,为了在一个阿拉伯地区显示天数

MonthGrid {
    id: monthGrid
    month: Calendar.December
    year: 2015
    locale: Qt.locale("ar")
    delegate: Text {
        horizontalAlignment: Text.AlignHCenter
        verticalAlignment: Text.AlignVCenter
        opacity: model.month === monthGrid.month ? 1 : 0
        text: monthGrid.locale.toString(model.date, "d")
        font: monthGrid.font

        required property var model
    }
}

另见DayOfWeekRowWeekNumberColumnCalendarModel

属性文档

delegate : Component

该属性持有可视化每一天的项代理。

除了index属性以外,每个代理的上下文中都有可用的模型数据角色列表

model.date : date单元格的日期
model.day : int天数的编号
model.today : bool该代理是否表示今天
model.weekNumber : int周数
model.month : int月份编号
model.year : int年份编号

下面的代码片段展示了项目代理的默认实现。它可以作为实现自定义代理的起点。

delegate: Text {
    horizontalAlignment: Text.AlignHCenter
    verticalAlignment: Text.AlignVCenter
    opacity: model.month === control.month ? 1 : 0
    text: model.day
    font: control.font

    required property var model
}

月份 : int

此属性用于保存月份编号。默认值是当前月份。

Qt Quick 日历模块使用从0开始的月份编号,以便与QML语言使用的JavaScript Date类型保持一致。这意味着可以直接将 Date::getMonth() 传递给方法。直接处理月份编号时,强烈建议使用以下枚举值以避免混淆。

常量描述
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)

另请参阅日历


标题 : string

此属性保存日历的标题。

此属性提供方便。本身不 MonthGrid 可视化标题。默认值由月份名称组成,使用 locale 格式化,以及年份编号。


year : int

此属性保存年份编号。

值必须在 -271820275759 范围内。默认值是当前年份。


信号文档

clicked(date date)

当点击 date 时,将发出此信号。

注意:相应的处理程序是 onClicked


pressAndHold(date date)

当按下并持有 date 时,将发出此信号。

注意:相应的处理程序是 onPressAndHold


pressed(date date)

当按下 date 时,将发出此信号。

注意:相应的处理程序是 onPressed


released(date date)

当释放 date 时,将发出此信号。

注意:相应的处理程序是 onReleased


© 2024 Qt公司有限公司。本文件包含的文档贡献是各自所有者的版权。本文件提供的文档是根据 Free Software Foundation 发布的 GNU自由文档许可证版本1.3 条款许可的。Qt及其相关标志是芬兰的 Qt公司以及/或其他国家的商标。所有其他商标均为各自所有者的财产。