QCalendarWidget Class

QCalendarWidgetクラスは、ユーザーが日付を選択できる月ベースのカレンダーウィジェットを提供します。詳細...

Header: #include <QCalendarWidget>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Inherits: QWidget

パブリック・タイプ

enum HorizontalHeaderFormat { SingleLetterDayNames, ShortDayNames, LongDayNames, NoHorizontalHeader }
enum SelectionMode { NoSelection, SingleSelection }
enum VerticalHeaderFormat { ISOWeekNumbers, NoVerticalHeader }

プロパティ

パブリック関数

QCalendarWidget(QWidget *parent = nullptr)
virtual ~QCalendarWidget()
QCalendar calendar() const
void clearMaximumDate()
void clearMinimumDate()
int dateEditAcceptDelay() const
QMap<QDate, QTextCharFormat> dateTextFormat() const
QTextCharFormat dateTextFormat(QDate date) const
Qt::DayOfWeek firstDayOfWeek() const
QTextCharFormat headerTextFormat() const
QCalendarWidget::HorizontalHeaderFormat horizontalHeaderFormat() const
bool isDateEditEnabled() const
bool isGridVisible() const
bool isNavigationBarVisible() const
QDate maximumDate() const
QDate minimumDate() const
int monthShown() const
QDate selectedDate() const
QCalendarWidget::SelectionMode selectionMode() const
void setCalendar(QCalendar c)
void setDateEditAcceptDelay(int delay)
void setDateEditEnabled(bool enable)
void setDateTextFormat(QDate date, const QTextCharFormat &format)
void setFirstDayOfWeek(Qt::DayOfWeek dayOfWeek)
void setHeaderTextFormat(const QTextCharFormat &format)
void setHorizontalHeaderFormat(QCalendarWidget::HorizontalHeaderFormat format)
void setMaximumDate(QDate date)
void setMinimumDate(QDate date)
void setSelectionMode(QCalendarWidget::SelectionMode mode)
void setVerticalHeaderFormat(QCalendarWidget::VerticalHeaderFormat format)
void setWeekdayTextFormat(Qt::DayOfWeek dayOfWeek, const QTextCharFormat &format)
QCalendarWidget::VerticalHeaderFormat verticalHeaderFormat() const
QTextCharFormat weekdayTextFormat(Qt::DayOfWeek dayOfWeek) const
int yearShown() const

再実装パブリック関数

virtual QSize minimumSizeHint() const override
virtual QSize sizeHint() const override

パブリックスロット

void setCurrentPage(int year, int month)
void setDateRange(QDate min, QDate max)
void setGridVisible(bool show)
void setNavigationBarVisible(bool visible)
void setSelectedDate(QDate date)
void showNextMonth()
void showNextYear()
void showPreviousMonth()
void showPreviousYear()
void showSelectedDate()
void showToday()

シグナル

void activated(QDate date)
void clicked(QDate date)
void currentPageChanged(int year, int month)
void selectionChanged()

保護された関数

virtual void paintCell(QPainter *painter, const QRect &rect, QDate date) const
void updateCell(QDate date)
void updateCells()

再実装された保護された関数

virtual bool event(QEvent *event) override
virtual bool eventFilter(QObject *watched, QEvent *event) override
virtual void keyPressEvent(QKeyEvent *event) override
virtual void mousePressEvent(QMouseEvent *event) override
virtual void resizeEvent(QResizeEvent *event) override

詳しい説明

ウィジェットは現在の月と年で初期化されますが、QCalendarWidgetは表示される年と月を変更するためにいくつかのパブリックスロットを提供します。

デフォルトでは今日の日付が選択され、ユーザはマウスとキーボードの両方を使用して日付を選択できます。現在選択されている日付は、selectedDate()関数を使用して取得することができます。minimumDatemaximumDate プロパティを設定することで、ユーザーの選択範囲を指定した日付範囲に制限することができます。また、setDateRange() コンビニエンス・スロットを使用して、両方のプロパティを一度に設定することもできます。selectionMode プロパティをNoSelection に設定すると、ユーザの選択を一切禁止することができます。日付は、setSelectedDate ()スロットを使用してプログラム的に選択することもできることに注意してください。

現在表示されている月と年は、それぞれmonthShown() とyearShown() 関数を使用して取得できます。

新しく作成されたカレンダー・ウィジェットでは、省略された曜日名が使用され、土曜日と日曜日は赤でマークされます。カレンダーのグリッドは表示されません。週番号が表示され、最初の列の曜日は、カレンダーのロケールの週の最初の曜日です。

曜日の表記は、horizontalHeaderFormat プロパティをQCalendarWidget::SingleLetterDayNames に設定することで、一文字の省略形("M "は "Monday")に変更することができます。同じプロパティをQCalendarWidget::LongDayNames に設定すると、ヘッダーに完全な曜日名が表示されます。verticalHeaderFormat プロパティをQCalendarWidget::NoVerticalHeader に設定することで、週番号を削除することができます。setGridVisible() 関数を使用してgridVisible プロパティを true に設定することで、カレンダー・グリッドをオンにすることができます:

QCalendarWidget *calendar;
calendar->setGridVisible(true);

最後に、setFirstDayOfWeek() 関数を使用して、最初の列の曜日を変更することができます。

また、QCalendarWidgetクラスは3つのシグナル、selectionChanged(),activated(),currentPageChanged() を提供し、ユーザーインタラクションに応答することが可能です。

ヘッダ、平日、または単一日のレンダリングは、特別な平日、特別な日付、またはヘッダのレンダリングにQTextCharFormat'を設定することで、大幅にカスタマイズすることができます。

カレンダーウィジェットで使用されるのは、QTextCharFormat のプロパティのサブセットのみです。現在、foreground、background、fontプロパティは、ウィジェットの個々のセルの描画を決定するために使用される。

QDate,QDateEdit,QTextCharFormatも参照のこと

メンバ型ドキュメント

enum QCalendarWidget::HorizontalHeaderFormat

この列挙型は、水平ヘッダーが表示できる様々なフォーマットを定義する。

定数説明
QCalendarWidget::SingleLetterDayNames1ヘッダは曜日名の略称を1文字で表示する(例えば、MondayはM)。
QCalendarWidget::ShortDayNames2ヘッダーは曜日名の短い略称を表示する(例えば、MondayはMon)。
QCalendarWidget::LongDayNames3ヘッダーは完全な曜日名を表示する(例:Monday)。
QCalendarWidget::NoHorizontalHeader0ヘッダーは非表示。

horizontalHeaderFormat() およびVerticalHeaderFormatも参照のこと

enum QCalendarWidget::SelectionMode

この列挙型は、カレンダーの日付を選択するためにユーザーに提供される選択のタイプを記述します。

定数説明
QCalendarWidget::NoSelection0日付は選択できない。
QCalendarWidget::SingleSelection1単一の日付を選択できる。

selectionModeも参照のこと

enum QCalendarWidget::VerticalHeaderFormat

この列挙型は、垂直ヘッダーが表示できる様々なフォーマットを定義する。

定数説明
QCalendarWidget::ISOWeekNumbers1ヘッダは、QDate::weekNumber()で記述されているようにISO週番号を表示する。
QCalendarWidget::NoVerticalHeader0ヘッダは非表示。

verticalHeaderFormat() およびHorizontalHeaderFormatも参照してください

プロパティ Documentation

dateEditAcceptDelay : int

このプロパティは、非アクティブな日付編集が、その内容が受け入れられる前に表示される時間を保持する。

カレンダー・ウィジェットのdate edit is enabled の場合、このプロパティは、最新のユーザ入力の後に日付編集が開いたままになる時間(ミリ秒単位)を指定する。この時間が経過すると、日付編集で指定された日付が受け付けられ、ポップアップが閉じられます。

デフォルトでは、遅延は1500ミリ秒(1.5秒)に定義されています。

アクセス関数:

int dateEditAcceptDelay() const
void setDateEditAcceptDelay(int delay)

dateEditEnabled : bool

このプロパティは、日付編集ポップアップが有効かどうかを保持します。

このプロパティが有効な場合、カレンダーウィジェットにフォーカスがある場合、修飾キー以外のキーを押すと、日付編集がポップアップ表示され、ユーザは現在のロケールで指定された形式で日付を指定することができます。

デフォルトでは、このプロパティは有効になっています。

日付編集はQDateEdit よりもシンプルな外観ですが、左右のカーソルキーを使ってフィールド間を移動したり、上下のカーソルキーを使って個々のフィールドをインクリメント/デクリメントしたり、数字キーを使って直接値を入力したりすることができます。

アクセス関数:

bool isDateEditEnabled() const
void setDateEditEnabled(bool enable)

QCalendarWidget::dateEditAcceptDelayも参照してください

firstDayOfWeek : Qt::DayOfWeek

このプロパティは、最初の列に表示される日を特定する値を保持します。

デフォルトでは、最初の列に表示される曜日は、カレンダーのロケールの週の最初の曜日です。

アクセス関数:

Qt::DayOfWeek firstDayOfWeek() const
void setFirstDayOfWeek(Qt::DayOfWeek dayOfWeek)

gridVisible : bool

このプロパティは、テーブルグリッドを表示するかどうかを保持します。

QCalendarWidget *calendar;
calendar->setGridVisible(true);

デフォルト値は false です。

アクセス関数:

bool isGridVisible() const
void setGridVisible(bool show)

horizontalHeaderFormat : HorizontalHeaderFormat

このプロパティは、水平ヘッダのフォーマットを保持します。

デフォルト値はQCalendarWidget::ShortDayNames です。

アクセス関数:

QCalendarWidget::HorizontalHeaderFormat horizontalHeaderFormat() const
void setHorizontalHeaderFormat(QCalendarWidget::HorizontalHeaderFormat format)

maximumDate : QDate

このプロパティは、現在指定されている日付範囲の最大日付を保持します。

ユーザは、現在設定されている最大日付より後の日付を選択することはできない。

QCalendarWidget *calendar;
calendar->setGridVisible(true);
calendar->setMaximumDate(QDate(2006, 7, 3));

最大日付を設定する際、選択範囲が無効になるとminimumDateselectedDate プロパティが調整される。指定された日付が有効なQDate オブジェクトでない場合、setMaximumDate() 関数は何も行いません。

既定の最大日付は、CE 9999 年 12 月 31 日です。clearMaximumDate() (Qt 6.6 以降) を呼び出すことで、このデフォルトを復元できます。

関数にアクセスしてください:

QDate maximumDate() const
void setMaximumDate(QDate date)
void clearMaximumDate()

setDateRange()も参照してください

minimumDate : QDate

このプロパティは、現在指定されている日付範囲の最小日付を保持します。

ユーザーは、現在設定されている最小日付より前の日付を選択することはできません。

QCalendarWidget *calendar;
calendar->setGridVisible(true);
calendar->setMinimumDate(QDate(2006, 6, 19));

最小日付を設定する際、選択範囲が無効になるとmaximumDateselectedDate プロパティが調整される。指定された日付が有効なQDate オブジェクトでない場合、setMinimumDate() 関数は何も行いません。

デフォルトの最小日付は、紀元前 4714 年 11 月 25 日です。clearMinimumDate() (Qt 6.6 以降) を呼び出すことで、このデフォルトを元に戻すことができます。

関数にアクセスしてください:

QDate minimumDate() const
void setMinimumDate(QDate date)
void clearMinimumDate()

setDateRange()も参照してください

このプロパティは、ナビゲーション・バーを表示するかどうかを保持します。

このプロパティがtrue (デフォルト)の場合、次月、前月、月選択、年選択のコントロールが上に表示されます。

このプロパティをfalseに設定すると、これらのコントロールは非表示になる。

アクセス関数:

bool isNavigationBarVisible() const
void setNavigationBarVisible(bool visible)

selectedDate : QDate

このプロパティは、現在選択されている日付を保持する。

選択された日付は、minimumDate およびmaximumDate プロパティで指定された日付範囲内になければならない。デフォルトでは、選択された日付は現在の日付である。

アクセス関数:

QDate selectedDate() const
void setSelectedDate(QDate date)

setDateRange()も参照のこと

selectionMode : SelectionMode

このプロパティは、ユーザがカレンダーで選択できるタイプを保持します。

このプロパティがSingleSelection に設定されている場合、ユーザは、マウスまたはキーボードを使用して、許容される最小および最大日付の範囲内で日付を選択できます。

このプロパティがNoSelection に設定されている場合、ユーザは日付を選択することはできませんが、プログラムによって選択することはできます。このプロパティがNoSelection に設定されているときに選択された日付は、カレンダーの選択された日付のままであることに注意してください。

デフォルト値はSingleSelection です。

アクセス関数:

QCalendarWidget::SelectionMode selectionMode() const
void setSelectionMode(QCalendarWidget::SelectionMode mode)

verticalHeaderFormat : VerticalHeaderFormat

このプロパティは、垂直ヘッダのフォーマットを保持します。

デフォルト値はQCalendarWidget::ISOWeekNumberです。

アクセス関数:

QCalendarWidget::VerticalHeaderFormat verticalHeaderFormat() const
void setVerticalHeaderFormat(QCalendarWidget::VerticalHeaderFormat format)

メンバ関数ドキュメント

[explicit] QCalendarWidget::QCalendarWidget(QWidget *parent = nullptr)

与えられたparent でカレンダーウィジェットを構築します。

ウィジェットは現在の月と年で初期化され、現在選択されている日付は今日です。

setCurrentPage()も参照してください

[virtual noexcept] QCalendarWidget::~QCalendarWidget()

カレンダー・ウィジェットを破棄します。

[signal] void QCalendarWidget::activated(QDate date)

このシグナルは、ユーザがReturnキーまたはEnterキーを押すか、カレンダー・ウィジェットのdate をダブルクリックするたびに発行される。

QCalendar QCalendarWidget::calendar() const

このウィジェットが使用しているカレンダーシステムを報告します。

setCalendar()も参照

[signal] void QCalendarWidget::clicked(QDate date)

このシグナルは、マウスボタンがクリックされたときに発せられる。マウスがクリックされた日付はdate で指定される。このシグナルは、有効な日付、例えばminimumDate() やmaximumDate() の範囲外の日付でクリックされた場合にのみ発せられる。選択モードがNoSelection の場合、このシグナルは発せられない。

[signal] void QCalendarWidget::currentPageChanged(int year, int month)

このシグナルは、現在表示されている月が変更されたときに発せられる。新しいyearmonth がパラメータとして渡される。

setCurrentPage()も参照のこと

QMap<QDate, QTextCharFormat> QCalendarWidget::dateTextFormat() const

QDate からQTextCharFormat までのQMap を返し、レンダリングを変更する特別な書式を使用している 日付をすべて表示する。

setDateTextFormat()も参照

QTextCharFormat QCalendarWidget::dateTextFormat(QDate date) const

date に対するQTextCharFormat を返す。特別なレンダリングを行わない場合は、 char の書式は空でもかまいません。

[override virtual protected] bool QCalendarWidget::event(QEvent *event)

再実装:QWidget::event(QEvent *event)。

[override virtual protected] bool QCalendarWidget::eventFilter(QObject *watched, QEvent *event)

再リンプルメント:QObject::eventFilter(QObject *watched, QEvent *event)。

QTextCharFormat QCalendarWidget::headerTextFormat() const

ヘッダをレンダリングするためのテキスト文字フォーマットを返します。

setHeaderTextFormat()も参照してください

[override virtual protected] void QCalendarWidget::keyPressEvent(QKeyEvent *event)

再インプリメント:QWidget::keyPressEvent(QKeyEvent *event)。

[override virtual] QSize QCalendarWidget::minimumSizeHint() const

プロパティのアクセス関数を再インプリメントします:QWidget::minimumSizeHint

int QCalendarWidget::monthShown() const

現在表示されている月を返します。月の番号は 1 から 12 までです。

yearShown() およびsetCurrentPage()も参照してください

[override virtual protected] void QCalendarWidget::mousePressEvent(QMouseEvent *event)

再実装しています:QWidget::mousePressEvent(QMouseEvent *event)。

[virtual protected] void QCalendarWidget::paintCell(QPainter *painter, const QRect &rect, QDate date) const

与えられたpainterrect を使用して、与えられたdate で指定されたセルをペイントします。

[override virtual protected] void QCalendarWidget::resizeEvent(QResizeEvent *event)

再インプリメント:QWidget::resizeEvent(QResizeEvent *event)。

[signal] void QCalendarWidget::selectionChanged()

このシグナルは、現在選択されている日付が変更されたときに発行されます。

現在選択されている日付は、ユーザがマウスやキーボードを使って変更することも、プログラマがsetSelectedDate() を使って変更することもできます。

selectedDate()も参照の こと。

void QCalendarWidget::setCalendar(QCalendar c)

このウィジェットで使用するカレンダー・システムとしてc を設定します。

ウィジェットは、サポートされている任意のカレンダーシステムを使用できます。デフォルトでは、グレゴリオ暦を使用します。

calendar()も参照してください

[slot] void QCalendarWidget::setCurrentPage(int year, int month)

選択された日付を変更せずに、指定されたyear の指定されたmonth を表示します。選択した日付を変更するには、setSelectedDate() 関数を使用します。

現在表示されている月と年は、それぞれmonthShown() およびyearShown() 関数を使用して取得できます。

yearShown()、monthShown()、showPreviousMonth()、showNextMonth()、showPreviousYear()、showNextYear()も参照

[slot] void QCalendarWidget::setDateRange(QDate min, QDate max)

minimumDate およびmaximumDate プロパティを設定して、日付範囲を定義します。

つまり、ユーザは指定された日付範囲内の日付しか選択できません。ただし

QCalendarWidget *calendar;

calendar->setDateRange(min, max);

QCalendarWidget *calendar;

calendar->setMinimumDate(min);
calendar->setMaximumDate(max);

min またはmax パラメータが有効なQDate オブジェクトでない場合、この関数は何もしない。

setMinimumDate() およびsetMaximumDate()も参照

void QCalendarWidget::setDateTextFormat(QDate date, const QTextCharFormat &format)

与えられたdate のレンダリングに使用される書式を、format で指定されたものに設定する。

date が NULL の場合、すべての日付書式がクリアされます。

dateTextFormat()も参照

void QCalendarWidget::setHeaderTextFormat(const QTextCharFormat &format)

ヘッダをレンダリングするためのテキスト文字書式をformat に設定します。 曜日テキスト書式も設定した場合、この書式の前景色と背景色がヘッダの書式よりも優先されます。その他の書式情報はヘッダの書式に従います。

headerTextFormat()も参照

void QCalendarWidget::setWeekdayTextFormat(Qt::DayOfWeek dayOfWeek, const QTextCharFormat &format)

曜日レンダリングのためのテキスト文字書式をdayOfWeek からformat に設定します。 この書式は、前景色と背景色の場合、ヘッダの書式よりも優先されます。その他のテキスト書式情報は、ヘッダ書式から取得されます。

weekdayTextFormat() およびsetHeaderTextFormat()も参照の こと。

[slot] void QCalendarWidget::showNextMonth()

現在表示されている月からの相対的な次の月を表示する。選択された日付は変更されないことに注意。

showPreviousMonth ()、setCurrentPage ()、setSelectedDate ()も参照

[slot] void QCalendarWidget::showNextYear()

現在表示されている年を基準に、次の年の現在表示されている月を表示する。選択された日付は変更されないことに注意。

showPreviousYear ()、setCurrentPage ()、setSelectedDate)も参照

[slot] void QCalendarWidget::showPreviousMonth()

現在表示されている月を基準にした前月を表示する。選択した日付は変更されないことに注意。

showNextMonth ()、setCurrentPage ()、setSelectedDate ()も参照

[slot] void QCalendarWidget::showPreviousYear()

現在表示されている年を基準とした、前年の現在表示されている月を表示する。選択された日付は変更されないことに注意。

showNextYear ()、setCurrentPage ()、setSelectedDate)も参照

[slot] void QCalendarWidget::showSelectedDate()

選択した日付の月を表示します。

selectedDate() およびsetCurrentPage() も参照

[slot] void QCalendarWidget::showToday()

今日の日付の月を表示します。

selectedDate() およびsetCurrentPage() も参照

[override virtual] QSize QCalendarWidget::sizeHint() const

プロパティのアクセス関数を再インプリメント:QWidget::sizeHint

[protected] void QCalendarWidget::updateCell(QDate date)

更新が無効になっているか、セルが非表示になっていない限り、指定されたdate で指定されたセルを更新します。

updateCells()、yearShown()、monthShown()も参照

[protected] void QCalendarWidget::updateCells()

更新が無効になっていない限り、すべての可視セルを更新します。

updateCell() も参照

QTextCharFormat QCalendarWidget::weekdayTextFormat(Qt::DayOfWeek dayOfWeek) const

dayOfWeek 曜日のレンダリングのためのテキスト文字書式を返します。

setWeekdayTextFormat() およびheaderTextFormat() も参照

int QCalendarWidget::yearShown() const

year関数は、現在表示されている月の年を返します。月の番号は 1 から 12 まで。

monthShown() およびsetCurrentPage() も参照して ください。

©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。