QCalendarWidget

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

Inheritance diagram of PySide2.QtWidgets.QCalendarWidget

Synopsis

Functions

Virtual functions

Slots

Signals

Detailed Description

../../_images/fusion-calendarwidget.png

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 property to 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() and yearShown() functions, respectively.

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 property to SingleLetterDayNames . Setting the same property to LongDayNames makes the header display the complete day names. The week numbers can be removed by setting the verticalHeaderFormat property to NoVerticalHeader . The calendar grid can be turned on by setting the gridVisible property to true using the setGridVisible() function:

../../_images/qcalendarwidget-grid.png
calendar.setGridVisible(True)

Finally, the day in the first column can be altered using the setFirstDayOfWeek() function.

The QCalendarWidget class also provides three signals, selectionChanged() , activated() and 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.

class QCalendarWidget([parent=None])
param parent

QWidget

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.

See also

setCurrentPage()

PySide2.QtWidgets.QCalendarWidget.HorizontalHeaderFormat

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

Constant

Description

QCalendarWidget.SingleLetterDayNames

The header displays a single letter abbreviation for day names (e.g. M for Monday).

QCalendarWidget.ShortDayNames

The header displays a short abbreviation for day names (e.g. Mon for Monday).

QCalendarWidget.LongDayNames

The header displays complete day names (e.g. Monday).

QCalendarWidget.NoHorizontalHeader

The header is hidden.

See also

horizontalHeaderFormat() VerticalHeaderFormat

PySide2.QtWidgets.QCalendarWidget.VerticalHeaderFormat

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

Constant

Description

QCalendarWidget.ISOWeekNumbers

The header displays ISO week numbers as described by weekNumber() .

QCalendarWidget.NoVerticalHeader

The header is hidden.

See also

verticalHeaderFormat() HorizontalHeaderFormat

PySide2.QtWidgets.QCalendarWidget.SelectionMode

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

Constant

Description

QCalendarWidget.NoSelection

Dates cannot be selected.

QCalendarWidget.SingleSelection

Single dates can be selected.

See also

selectionMode

PySide2.QtWidgets.QCalendarWidget.activated(date)
Parameters

dateQDate

PySide2.QtWidgets.QCalendarWidget.clicked(date)
Parameters

dateQDate

PySide2.QtWidgets.QCalendarWidget.currentPageChanged(year, month)
Parameters
  • yearint

  • monthint

PySide2.QtWidgets.QCalendarWidget.dateEditAcceptDelay()
Return type

int

PySide2.QtWidgets.QCalendarWidget.dateTextFormat()
Return type

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

PySide2.QtWidgets.QCalendarWidget.dateTextFormat(date)
Parameters

dateQDate

Return type

QTextCharFormat

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

PySide2.QtWidgets.QCalendarWidget.firstDayOfWeek()
Return type

DayOfWeek

PySide2.QtWidgets.QCalendarWidget.headerTextFormat()
Return type

QTextCharFormat

Returns the text char format for rendering the header.

PySide2.QtWidgets.QCalendarWidget.horizontalHeaderFormat()
Return type

HorizontalHeaderFormat

PySide2.QtWidgets.QCalendarWidget.isDateEditEnabled()
Return type

bool

PySide2.QtWidgets.QCalendarWidget.isGridVisible()
Return type

bool

PySide2.QtWidgets.QCalendarWidget.isNavigationBarVisible()
Return type

bool

PySide2.QtWidgets.QCalendarWidget.maximumDate()
Return type

QDate

See also

setMaximumDate()

PySide2.QtWidgets.QCalendarWidget.minimumDate()
Return type

QDate

See also

setMinimumDate()

PySide2.QtWidgets.QCalendarWidget.monthShown()
Return type

int

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

PySide2.QtWidgets.QCalendarWidget.paintCell(painter, rect, date)
Parameters
  • painterQPainter

  • rectQRect

  • dateQDate

Paints the cell specified by the given date , using the given painter and rect .

PySide2.QtWidgets.QCalendarWidget.selectedDate()
Return type

QDate

PySide2.QtWidgets.QCalendarWidget.selectionChanged()
PySide2.QtWidgets.QCalendarWidget.selectionMode()
Return type

SelectionMode

PySide2.QtWidgets.QCalendarWidget.setCurrentPage(year, month)
Parameters
  • yearint

  • monthint

Displays the given month of the given 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() and yearShown() functions respectively.

PySide2.QtWidgets.QCalendarWidget.setDateEditAcceptDelay(delay)
Parameters

delayint

PySide2.QtWidgets.QCalendarWidget.setDateEditEnabled(enable)
Parameters

enablebool

PySide2.QtWidgets.QCalendarWidget.setDateRange(min, max)
Parameters
  • minQDate

  • maxQDate

Defines a date range by setting the minimumDate and maximumDate properties.

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

calendar.setDateRange(min, max)

is analogous to

calendar.setMinimumDate(min)
calendar.setMaximumDate(max)

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

PySide2.QtWidgets.QCalendarWidget.setDateTextFormat(date, format)
Parameters
  • dateQDate

  • formatQTextCharFormat

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

If date is null, all date formats are cleared.

See also

dateTextFormat()

PySide2.QtWidgets.QCalendarWidget.setFirstDayOfWeek(dayOfWeek)
Parameters

dayOfWeekDayOfWeek

See also

firstDayOfWeek()

PySide2.QtWidgets.QCalendarWidget.setGridVisible(show)
Parameters

showbool

See also

isGridVisible()

PySide2.QtWidgets.QCalendarWidget.setHeaderTextFormat(format)
Parameters

formatQTextCharFormat

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.

PySide2.QtWidgets.QCalendarWidget.setHorizontalHeaderFormat(format)
Parameters

formatHorizontalHeaderFormat

PySide2.QtWidgets.QCalendarWidget.setMaximumDate(date)
Parameters

dateQDate

See also

maximumDate()

PySide2.QtWidgets.QCalendarWidget.setMinimumDate(date)
Parameters

dateQDate

See also

minimumDate()

PySide2.QtWidgets.QCalendarWidget.setNavigationBarVisible(visible)
Parameters

visiblebool

PySide2.QtWidgets.QCalendarWidget.setSelectedDate(date)
Parameters

dateQDate

See also

selectedDate()

PySide2.QtWidgets.QCalendarWidget.setSelectionMode(mode)
Parameters

modeSelectionMode

See also

selectionMode()

PySide2.QtWidgets.QCalendarWidget.setVerticalHeaderFormat(format)
Parameters

formatVerticalHeaderFormat

PySide2.QtWidgets.QCalendarWidget.setWeekdayTextFormat(dayOfWeek, format)
Parameters
  • dayOfWeekDayOfWeek

  • formatQTextCharFormat

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.

PySide2.QtWidgets.QCalendarWidget.showNextMonth()

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

PySide2.QtWidgets.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.

PySide2.QtWidgets.QCalendarWidget.showPreviousMonth()

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

PySide2.QtWidgets.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.

PySide2.QtWidgets.QCalendarWidget.showSelectedDate()

Shows the month of the selected date.

PySide2.QtWidgets.QCalendarWidget.showToday()

Shows the month of the today’s date.

PySide2.QtWidgets.QCalendarWidget.updateCell(date)
Parameters

dateQDate

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

PySide2.QtWidgets.QCalendarWidget.updateCells()

Updates all visible cells unless updates are disabled.

See also

updateCell()

PySide2.QtWidgets.QCalendarWidget.verticalHeaderFormat()
Return type

VerticalHeaderFormat

PySide2.QtWidgets.QCalendarWidget.weekdayTextFormat(dayOfWeek)
Parameters

dayOfWeekDayOfWeek

Return type

QTextCharFormat

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

PySide2.QtWidgets.QCalendarWidget.yearShown()
Return type

int

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