QCalendarWidget 类

QCalendarWidget class provides a monthly based calendar widget allowing the user to select a date. 更多...

头: #include <QCalendarWidget>
qmake: QT += widgets
Since: Qt 4.2
继承: QWidget

公共类型

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

特性

公共函数

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

重实现公共函数

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

公共槽

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

信号

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

保护函数

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

重实现保护函数

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

额外继承成员

详细描述

QCalendarWidget class provides a monthly based calendar widget allowing the user to select a date.

The widget is initialized with the current month and year, but QCalendarWidget provides several public slots to change the year and month that is shown.

By default, today's date is selected, and the user can select a date using both mouse and keyboard. The currently selected date can be retrieved using the selectedDate () function. It is possible to constrain the user selection to a given date range by setting the minimumDate and maximumDate properties. Alternatively, both properties can be set in one go using the setDateRange () convenience slot. Set the selectionMode 特性到 NoSelection to prohibit the user from selecting at all. Note that a date also can be selected programmatically using the setSelectedDate () slot.

The currently displayed month and year can be retrieved using the monthShown () 和 yearShown () 函数,分别。

A newly created calendar widget uses abbreviated day names, and both Saturdays and Sundays are marked in red. The calendar grid is not visible. The week numbers are displayed, and the first column day is the first day of the week for the calendar's locale.

The notation of the days can be altered to a single letter abbreviations ("M" for "Monday") by setting the horizontalHeaderFormat 特性到 QCalendarWidget::SingleLetterDayNames . Setting the same property to QCalendarWidget::LongDayNames makes the header display the complete day names. The week numbers can be removed by setting the verticalHeaderFormat 特性到 QCalendarWidget::NoVerticalHeader . The calendar grid can be turned on by setting the gridVisible property to true using the setGridVisible () 函数:

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

Finally, the day in the first column can be altered using the setFirstDayOfWeek () 函数。

QCalendarWidget class also provides three signals, selectionChanged (), activated () 和 currentPageChanged () making it possible to respond to user interaction.

The rendering of the headers, weekdays or single days can be largely customized by setting QTextCharFormat 's for some special weekday, a special date or for the rendering of the headers.

Only a subset of the properties in QTextCharFormat are used by the calendar widget. Currently, the foreground, background and font properties are used to determine the rendering of individual cells in the widget.

另请参阅 QDate , QDateEdit ,和 QTextCharFormat .

成员类型文档编制

enum QCalendarWidget:: HorizontalHeaderFormat

This enum type defines the various formats the horizontal header can display.

常量 描述
QCalendarWidget::SingleLetterDayNames 1 The header displays a single letter abbreviation for day names (e.g. M for Monday).
QCalendarWidget::ShortDayNames 2 The header displays a short abbreviation for day names (e.g. Mon for Monday).
QCalendarWidget::LongDayNames 3 The header displays complete day names (e.g. Monday).
QCalendarWidget::NoHorizontalHeader 0 头被隐藏。

另请参阅 horizontalHeaderFormat () 和 VerticalHeaderFormat .

enum QCalendarWidget:: SelectionMode

This enum describes the types of selection offered to the user for selecting dates in the calendar.

常量 描述
QCalendarWidget::NoSelection 0 Dates cannot be selected.
QCalendarWidget::SingleSelection 1 Single dates can be selected.

另请参阅 selectionMode .

enum QCalendarWidget:: VerticalHeaderFormat

This enum type defines the various formats the vertical header can display.

常量 描述
QCalendarWidget::ISOWeekNumbers 1 The header displays ISO week numbers as described by QDate::weekNumber ().
QCalendarWidget::NoVerticalHeader 0 头被隐藏。

另请参阅 verticalHeaderFormat () 和 HorizontalHeaderFormat .

特性文档编制

dateEditAcceptDelay : int

This property holds the time an inactive date edit is shown before its contents are accepted

If the calendar widget's date edit is enabled , this property specifies the amount of time (in millseconds) that the date edit remains open after the most recent user input. Once this time has elapsed, the date specified in the date edit is accepted and the popup is closed.

By default, the delay is defined to be 1500 milliseconds (1.5 seconds).

该特性在 Qt 4.3 引入。

访问函数:

int dateEditAcceptDelay () const
void setDateEditAcceptDelay (int delay )

dateEditEnabled : bool

This property holds whether the date edit popup is enabled

If this property is enabled, pressing a non-modifier key will cause a date edit to popup if the calendar widget has focus, allowing the user to specify a date in the form specified by the current locale.

By default, this property is enabled.

The date edit is simpler in appearance than QDateEdit , but allows the user to navigate between fields using the left and right cursor keys, increment and decrement individual fields using the up and down cursor keys, and enter values directly using the number keys.

该特性在 Qt 4.3 引入。

访问函数:

bool isDateEditEnabled () const
void setDateEditEnabled (bool enable )

另请参阅 QCalendarWidget::dateEditAcceptDelay .

firstDayOfWeek : Qt::DayOfWeek

This property holds a value identifying the day displayed in the first column.

By default, the day displayed in the first column is the first day of the week for the calendar's locale.

访问函数:

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

This property holds the format of the horizontal header.

默认值为 QCalendarWidget::ShortDayNames .

访问函数:

HorizontalHeaderFormat horizontalHeaderFormat () const
void setHorizontalHeaderFormat (HorizontalHeaderFormat format )

maximumDate : QDate

This property holds the maximum date of the currently specified date range.

The user will not be able to select a date which is after the currently set maximum date.

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

By default, the maximum date is the last day the QDate class can handle.

When setting a maximum date, the minimumDate and selectedDate properties are adjusted if the selection range becomes invalid. If the provided date is not a valid QDate object, the setMaximumDate() function does nothing.

访问函数:

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

另请参阅 setDateRange ().

minimumDate : QDate

This property holds the minimum date of the currently specified date range.

The user will not be able to select a date that is before the currently set minimum date.

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

By default, the minimum date is the earliest date that the QDate class can handle.

When setting a minimum date, the maximumDate and selectedDate properties are adjusted if the selection range becomes invalid. If the provided date is not a valid QDate object, the setMinimumDate() function does nothing.

访问函数:

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

另请参阅 setDateRange ().

This property holds whether the navigation bar is shown or not

When this property is true (the default), the next month, previous month, month selection, year selection controls are shown on top.

When the property is set to false, these controls are hidden.

该特性在 Qt 4.3 引入。

访问函数:

bool isNavigationBarVisible () const
void setNavigationBarVisible (bool visible )

selectedDate : QDate

This property holds the currently selected date.

The selected date must be within the date range specified by the minimumDate and maximumDate properties. By default, the selected date is the current date.

访问函数:

QDate selectedDate () const
void setSelectedDate (const QDate & date )

另请参阅 setDateRange ().

selectionMode : SelectionMode

This property holds the type of selection the user can make in the calendar

当此特性被设为 SingleSelection , the user can select a date within the minimum and maximum allowed dates, using either the mouse or the keyboard.

When the property is set to NoSelection , the user will be unable to select dates, but they can still be selected programmatically. Note that the date that is selected when the property is set to NoSelection will still be the selected date of the calendar.

默认值为 SingleSelection .

访问函数:

SelectionMode selectionMode () const
void setSelectionMode (SelectionMode mode )

verticalHeaderFormat : VerticalHeaderFormat

This property holds the format of the vertical header.

The default value is QCalendarWidget::ISOWeekNumber.

访问函数:

VerticalHeaderFormat verticalHeaderFormat () const
void setVerticalHeaderFormat (VerticalHeaderFormat format )

成员函数文档编制

QCalendarWidget:: QCalendarWidget ( QWidget * parent = Q_NULLPTR)

Constructs a calendar widget with the given parent .

The widget is initialized with the current month and year, and the currently selected date is today.

另请参阅 setCurrentPage ().

QCalendarWidget:: ~QCalendarWidget ()

Destroys the calendar widget.

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

This signal is emitted whenever the user presses the Return or Enter key or double-clicks a date in the calendar widget.

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

This signal is emitted when a mouse button is clicked. The date the mouse was clicked on is specified by date . The signal is only emitted when clicked on a valid date, e.g., dates are not outside the minimumDate () 和 maximumDate (). If the selection mode is NoSelection , this signal will not be emitted.

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

This signal is emitted when the currently shown month is changed. The new year and month are passed as parameters.

另请参阅 setCurrentPage ().

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

返回 QMap from QDate to QTextCharFormat showing all dates that use a special format that alters their rendering.

另请参阅 setDateTextFormat ().

QTextCharFormat QCalendarWidget:: dateTextFormat (const QDate & date ) const

返回 QTextCharFormat for date . The char format can be be empty if the date is not renderd specially.

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

重实现自 QObject::event ().

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

重实现自 QObject::eventFilter ().

QTextCharFormat QCalendarWidget:: headerTextFormat () const

Returns the text char format for rendering the header.

另请参阅 setHeaderTextFormat ().

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

重实现自 QWidget::keyPressEvent ().

[virtual] QSize QCalendarWidget:: minimumSizeHint () const

重实现自 QWidget::minimumSizeHint ().

int QCalendarWidget:: monthShown () const

Returns the currently displayed month. Months are numbered from 1 to 12.

另请参阅 yearShown () 和 setCurrentPage ().

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

重实现自 QWidget::mousePressEvent ().

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

Paints the cell specified by the given date ,使用给定 painter and rect .

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

重实现自 QWidget::resizeEvent ().

[signal] void QCalendarWidget:: selectionChanged ()

This signal is emitted when the currently selected date is changed.

The currently selected date can be changed by the user using the mouse or keyboard, or by the programmer using setSelectedDate ().

另请参阅 selectedDate ().

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

Displays the given month 为给定 year without changing the selected date. Use the setSelectedDate () function to alter the selected date.

The currently displayed month and year can be retrieved using the monthShown () 和 yearShown () 函数分别。

另请参阅 yearShown (), monthShown (), showPreviousMonth (), showNextMonth (), showPreviousYear (),和 showNextYear ().

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

Defines a date range by setting the minimumDate and maximumDate 特性。

The date range restricts the user selection, i.e. the user can only select dates within the specified date range. Note that

QCalendarWidget *calendar;
calendar->setDateRange(min, max);
					

is analogous to

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

min or max parameters are not valid QDate objects, this function does nothing.

另请参阅 setMinimumDate () 和 setMaximumDate ().

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

Sets the format used to render the given date to that specified by format .

date is null, all date formats are cleared.

另请参阅 dateTextFormat ().

void QCalendarWidget:: setHeaderTextFormat (const QTextCharFormat & format )

Sets the text char format for rendering the header to format . If you also set a weekday text format, this format's foreground and background color will take precedence over the header's format. The other formatting information will still be decided by the header's format.

另请参阅 headerTextFormat ().

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

Sets the text char format for rendering of day in the week dayOfWeek to format . The format will take precedence over the header format in case of foreground and background color. Other text formatting information is taken from the headers format.

另请参阅 weekdayTextFormat () 和 setHeaderTextFormat ().

[slot] void QCalendarWidget:: showNextMonth ()

Shows the next month relative to the currently displayed month. Note that the selected date is not changed.

另请参阅 showPreviousMonth (), setCurrentPage (),和 setSelectedDate ().

[slot] void QCalendarWidget:: showNextYear ()

Shows the currently displayed month in the next year relative to the currently displayed year. Note that the selected date is not changed.

另请参阅 showPreviousYear (), setCurrentPage (),和 setSelectedDate ().

[slot] void QCalendarWidget:: showPreviousMonth ()

Shows the previous month relative to the currently displayed month. Note that the selected date is not changed.

另请参阅 showNextMonth (), setCurrentPage (),和 setSelectedDate ().

[slot] void QCalendarWidget:: showPreviousYear ()

Shows the currently displayed month in the previous year relative to the currently displayed year. Note that the selected date is not changed.

另请参阅 showNextYear (), setCurrentPage (),和 setSelectedDate ().

[slot] void QCalendarWidget:: showSelectedDate ()

Shows the month of the selected date.

另请参阅 selectedDate () 和 setCurrentPage ().

[slot] void QCalendarWidget:: showToday ()

Shows the month of the today's date.

另请参阅 selectedDate () 和 setCurrentPage ().

[virtual] QSize QCalendarWidget:: sizeHint () const

重实现自 QWidget::sizeHint ().

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

Updates the cell specified by the given date unless updates are disabled or the cell is hidden.

该函数在 Qt 4.4 引入。

另请参阅 updateCells (), yearShown (),和 monthShown ().

[protected] void QCalendarWidget:: updateCells ()

更新所有可见单元格,除非更新被禁用。

该函数在 Qt 4.4 引入。

另请参阅 updateCell ().

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

Returns the text char format for rendering of day in the week dayOfWeek .

另请参阅 setWeekdayTextFormat () 和 headerTextFormat ().

int QCalendarWidget:: yearShown () const

Returns the year of the currently displayed month. Months are numbered from 1 to 12.

另请参阅 monthShown () 和 setCurrentPage ().