このページでは

MonthGrid QML Type

1か月の日付をグリッド形式で表示したもの。詳細...

Import Statement: import QtQuick.Controls
Inherits:

Control

プロパティ

信号

詳細説明

MonthGridは、カレンダー上の月をグリッド形式で表示します。表示内容は、指定されたmonth およびyear に基づき、指定されたlocale を用いて計算されます。

暦日を表示する月別グリッド

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

MonthGridはスタンドアロンのコントロールとして使用することもできますが、多くの場合、DayOfWeekRow およびWeekNumberColumn と組み合わせて使用されます。使用方法にかかわらず、グリッドの配置はユーザーに委ねられています。

カレンダーレイアウトの月別グリッド

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の外観は、custom delegate を実装することで変更できます。

特定の月を表示する際、MonthGridは前月および翌月の日付も表示します。つまり、最初の行や最後の行が完全に隣接する月に含まれている場合でも、常に6行が表示されます。

日付のローカライズ

日付のローカライズには、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
    }
}

関連項目: DayOfWeekRow 、WeekNumberColumn 、CalendarModel 、およびQt Quick Controls - Event Calendar。

プロパティのドキュメント

delegate : Component

このプロパティには、各日を可視化するアイテムデリゲートが格納されます。

index プロパティに加え、各デリゲートのコンテキストでは、以下のモデルデータロールのリストが利用可能です:

model.date: dateセルの日付
model.day: int日の番号
model.today: boolデリゲートが今日を表しているかどうか
model.weekNumber: int週番号
model.month: int月の番号
model.year: int年の番号

以下のスニペットは、item デリゲートのデフォルトの実装を示しています。これは、カスタムデリゲートを実装するための出発点として使用できます。

MonthGrid デリゲートの所有権を取得しません。

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

    required property var model
}

month : int

このプロパティには、月の番号が格納されます。デフォルト値は現在の月です。

Qt Quick のコントロールにおけるカレンダー関連の型は、JavaScriptのDateオブジェクトと同様に、0を起点とする月番号を使用します。ただし、これはQDate とは異なり、 では月の番号は1から始まります。

混乱を避けるために、以下の列挙値を使用できます。

定数説明
Calendar.January1月 (0)
Calendar.February2月 (1)
Calendar.March3月 (2)
Calendar.April4月 (3)
Calendar.May5月 (4)
Calendar.June6月 (5)
Calendar.July7月 (6)
Calendar.August8月 (7)
Calendar.September9月 (8)
Calendar.October10月 (9)
Calendar.November11月 (10)
Calendar.December12月 (11)

Calendarも参照してください 。

title : string

このプロパティは、カレンダーのタイトルを保持します。

このプロパティは便宜上提供されているものです。MonthGrid 自体はタイトルを可視化しません。デフォルト値は、locale を使用して書式設定された月名と、年号で構成されます。

year : int

このプロパティには、年の番号が格納されます。

値は、-271820 から275759 の範囲でなければなりません。デフォルト値は今年度です。

Signal ドキュメント

clicked(date date)

このシグナルは、date がクリックされたときに発生します。

注: 対応するハンドラは onClicked です。

pressAndHold(date date)

この信号は、date が長押しされたときに発生します。

注: 対応するハンドラは onPressAndHold です。

pressed(date date)

このシグナルは、date が押されたときに発生します。

注: 対応するハンドラは onPressed です。

released(date date)

このシグナルは、date が解放されたときに発生します。

注: 対応するハンドラは onReleased です。

© 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.