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()関数を使用して取得することができます。minimumDate 、maximumDate プロパティを設定することで、ユーザーの選択範囲を指定した日付範囲に制限することができます。また、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::SingleLetterDayNames | 1 | ヘッダは曜日名の略称を1文字で表示する(例えば、MondayはM)。 |
QCalendarWidget::ShortDayNames | 2 | ヘッダーは曜日名の短い略称を表示する(例えば、MondayはMon)。 |
QCalendarWidget::LongDayNames | 3 | ヘッダーは完全な曜日名を表示する(例:Monday)。 |
QCalendarWidget::NoHorizontalHeader | 0 | ヘッダーは非表示。 |
horizontalHeaderFormat() およびVerticalHeaderFormatも参照のこと 。
enum QCalendarWidget::SelectionMode
この列挙型は、カレンダーの日付を選択するためにユーザーに提供される選択のタイプを記述します。
定数 | 値 | 説明 |
---|---|---|
QCalendarWidget::NoSelection | 0 | 日付は選択できない。 |
QCalendarWidget::SingleSelection | 1 | 単一の日付を選択できる。 |
selectionModeも参照のこと 。
enum QCalendarWidget::VerticalHeaderFormat
この列挙型は、垂直ヘッダーが表示できる様々なフォーマットを定義する。
定数 | 値 | 説明 |
---|---|---|
QCalendarWidget::ISOWeekNumbers | 1 | ヘッダは、QDate::weekNumber()で記述されているようにISO週番号を表示する。 |
QCalendarWidget::NoVerticalHeader | 0 | ヘッダは非表示。 |
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)); |
最大日付を設定する際、選択範囲が無効になるとminimumDate とselectedDate プロパティが調整される。指定された日付が有効な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)); |
最小日付を設定する際、選択範囲が無効になるとmaximumDate とselectedDate プロパティが調整される。指定された日付が有効なQDate オブジェクトでない場合、setMinimumDate() 関数は何も行いません。
デフォルトの最小日付は、紀元前 4714 年 11 月 25 日です。clearMinimumDate() (Qt 6.6 以降) を呼び出すことで、このデフォルトを元に戻すことができます。
関数にアクセスしてください:
QDate | minimumDate() const |
void | setMinimumDate(QDate date) |
void | clearMinimumDate() |
setDateRange()も参照してください 。
navigationBarVisible : bool
このプロパティは、ナビゲーション・バーを表示するかどうかを保持します。
このプロパティが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)
このシグナルは、現在表示されている月が変更されたときに発せられる。新しいyear とmonth がパラメータとして渡される。
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
与えられたpainter とrect を使用して、与えられた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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。