5#ifndef QCALENDARWIDGET_H
6#define QCALENDARWIDGET_H
8#include <QtWidgets/qtwidgetsglobal.h>
9#include <QtWidgets/qwidget.h>
10#include <QtCore/qdatetime.h>
23 Q_ENUMS(Qt::DayOfWeek)
24 Q_PROPERTY(QDate selectedDate READ selectedDate WRITE setSelectedDate)
25 Q_PROPERTY(QDate minimumDate READ minimumDate WRITE setMinimumDate RESET clearMinimumDate)
26 Q_PROPERTY(QDate maximumDate READ maximumDate WRITE setMaximumDate RESET clearMaximumDate)
27 Q_PROPERTY(Qt::DayOfWeek firstDayOfWeek READ firstDayOfWeek WRITE setFirstDayOfWeek)
28 Q_PROPERTY(
bool gridVisible READ isGridVisible WRITE setGridVisible)
29 Q_PROPERTY(SelectionMode selectionMode READ selectionMode WRITE setSelectionMode)
30 Q_PROPERTY(HorizontalHeaderFormat horizontalHeaderFormat READ horizontalHeaderFormat
31 WRITE setHorizontalHeaderFormat)
32 Q_PROPERTY(VerticalHeaderFormat verticalHeaderFormat READ verticalHeaderFormat
33 WRITE setVerticalHeaderFormat)
34 Q_PROPERTY(
bool navigationBarVisible READ isNavigationBarVisible WRITE setNavigationBarVisible)
35 Q_PROPERTY(
bool dateEditEnabled READ isDateEditEnabled WRITE setDateEditEnabled)
36 Q_PROPERTY(
int dateEditAcceptDelay READ dateEditAcceptDelay WRITE setDateEditAcceptDelay)
39 enum HorizontalHeaderFormat {
45 Q_ENUM(HorizontalHeaderFormat)
47 enum VerticalHeaderFormat {
51 Q_ENUM(VerticalHeaderFormat)
59 explicit QCalendarWidget(QWidget *parent =
nullptr);
62 virtual QSize sizeHint()
const override;
63 virtual QSize minimumSizeHint()
const override;
65 QDate selectedDate()
const;
67 int yearShown()
const;
68 int monthShown()
const;
70 QDate minimumDate()
const;
71 void setMinimumDate(QDate date);
72 void clearMinimumDate();
74 QDate maximumDate()
const;
75 void setMaximumDate(QDate date);
76 void clearMaximumDate();
78 Qt::DayOfWeek firstDayOfWeek()
const;
79 void setFirstDayOfWeek(Qt::DayOfWeek dayOfWeek);
81 bool isNavigationBarVisible()
const;
82 bool isGridVisible()
const;
84 QCalendar calendar()
const;
85 void setCalendar(QCalendar calendar);
87 SelectionMode selectionMode()
const;
88 void setSelectionMode(SelectionMode mode);
90 HorizontalHeaderFormat horizontalHeaderFormat()
const;
91 void setHorizontalHeaderFormat(HorizontalHeaderFormat format);
93 VerticalHeaderFormat verticalHeaderFormat()
const;
94 void setVerticalHeaderFormat(VerticalHeaderFormat format);
96 QTextCharFormat headerTextFormat()
const;
97 void setHeaderTextFormat(
const QTextCharFormat &format);
99 QTextCharFormat weekdayTextFormat(Qt::DayOfWeek dayOfWeek)
const;
100 void setWeekdayTextFormat(Qt::DayOfWeek dayOfWeek,
const QTextCharFormat &format);
102 QMap<QDate, QTextCharFormat> dateTextFormat()
const;
103 QTextCharFormat dateTextFormat(QDate date)
const;
104 void setDateTextFormat(QDate date,
const QTextCharFormat &format);
106 bool isDateEditEnabled()
const;
107 void setDateEditEnabled(
bool enable);
109 int dateEditAcceptDelay()
const;
110 void setDateEditAcceptDelay(
int delay);
113 bool event(QEvent *event) override;
114 bool eventFilter(QObject *watched, QEvent *event) override;
115 void mousePressEvent(QMouseEvent *event) override;
116 void resizeEvent(QResizeEvent * event) override;
117 void keyPressEvent(QKeyEvent * event) override;
119 virtual void paintCell(QPainter *painter,
const QRect &rect, QDate date)
const;
120 void updateCell(QDate date);
124 void setSelectedDate(QDate date);
125 void setDateRange(QDate min, QDate max);
126 void setCurrentPage(
int year,
int month);
127 void setGridVisible(
bool show);
128 void setNavigationBarVisible(
bool visible);
129 void showNextMonth();
130 void showPreviousMonth();
132 void showPreviousYear();
133 void showSelectedDate();
137 void selectionChanged();
138 void clicked(QDate date);
139 void activated(QDate date);
140 void currentPageChanged(
int year,
int month);
143 Q_DECLARE_PRIVATE(QCalendarWidget)
144 Q_DISABLE_COPY(QCalendarWidget)
146 Q_PRIVATE_SLOT(d_func(),
void _q_slotShowDate(QDate date))
147 Q_PRIVATE_SLOT(d_func(),
void _q_slotChangeDate(QDate date))
148 Q_PRIVATE_SLOT(d_func(),
void _q_slotChangeDate(QDate date,
bool changeMonth))
149 Q_PRIVATE_SLOT(d_func(),
void _q_editingFinished())
150 Q_PRIVATE_SLOT(d_func(),
void _q_prevMonthClicked())
151 Q_PRIVATE_SLOT(d_func(),
void _q_nextMonthClicked())
152 Q_PRIVATE_SLOT(d_func(),
void _q_yearEditingFinished())
153 Q_PRIVATE_SLOT(d_func(),
void _q_yearClicked())
154 Q_PRIVATE_SLOT(d_func(),
void _q_monthChanged(QAction *act))
The QCalendar class describes calendar systems.
constexpr QModelIndex() noexcept
Creates a new empty model index.
The QStylePainter class is a convenience class for drawing QStyle elements inside a widget.
virtual Section handleKey(int key)=0
virtual void setDate(QDate date, QCalendar cal=QCalendar())=0
virtual QDate applyToDate(QDate date, QCalendar cal=QCalendar()) const =0
QCalendarDateSectionValidator()
virtual QString text(QDate date, QCalendar cal, int repeat) const =0
static QString highlightString(const QString &str, int pos)
virtual QString text() const =0
virtual ~QCalendarDateSectionValidator()
void setLocale(const QLocale &locale)
void setInitialDate(QDate date, QCalendar cal)
~QCalendarDateValidator()
void handleKeyEvent(QKeyEvent *keyEvent, QCalendar cal)
void setFormat(const QString &format)
QString currentText(QCalendar cal) const
QDate currentDate() const
virtual QDate applyToDate(QDate date, QCalendar cal) const override
virtual Section handleKey(int key) override
virtual void setDate(QDate date, QCalendar cal) override
virtual QString text() const override
virtual QString text(QDate date, QCalendar cal, int repeat) const override
void paintCell(QPainter *painter, const QRect &rect, QDate date) const
QString dayName(Qt::DayOfWeek day) const
void showMonth(int year, int month)
QCalendar calendar() const
QTextCharFormat formatForCell(int row, int col) const
int columnCount(const QModelIndex &parent) const override
Returns the number of columns for the children of the given parent.
QTextCharFormat m_headerFormat
QString monthName(const QLocale &locale, int month)
void setFirstColumnDay(Qt::DayOfWeek dayOfWeek)
int columnForDayOfWeek(Qt::DayOfWeek day) const
void setCalendar(QCalendar c)
Qt::ItemFlags flags(const QModelIndex &index) const override
\reimp
StaticDayOfWeekAssociativeArray< QTextCharFormat > m_dayFormats
int columnForFirstOfMonth(QDate date) const
void setMinimumDate(QDate date)
void cellForDate(QDate date, int *row, int *column) const
bool weekNumbersShown() const
QVariant data(const QModelIndex &index, int role) const override
Returns the data stored under the given role for the item referred to by the index.
void setMaximumDate(QDate date)
Qt::DayOfWeek firstColumnDay() const
void setHorizontalHeaderFormat(QCalendarWidget::HorizontalHeaderFormat format)
Qt::DayOfWeek dayOfWeekForColumn(int section) const
QDate referenceDate() const
void setView(QCalendarView *view)
int rowCount(const QModelIndex &parent) const override
Returns the number of rows under the given parent.
void setRange(QDate min, QDate max)
QMap< QDate, QTextCharFormat > m_dateFormats
QDate dateForCell(int row, int column) const
void setWeekNumbersShown(bool show)
virtual QDate applyToDate(QDate date, QCalendar cal) const override
QCalendarMonthValidator()
virtual Section handleKey(int key) override
virtual QString text(QDate date, QCalendar cal, int repeat) const override
virtual void setDate(QDate date, QCalendar cal) override
virtual QString text() const override
int dateEditAcceptDelay() const
void setDateEditAcceptDelay(int delay)
void timerEvent(QTimerEvent *e) override
This event handler can be reimplemented in a subclass to receive timer events for the object.
void setWidget(QWidget *widget)
bool eventFilter(QObject *o, QEvent *e) override
Filters events if this object has been installed as an event filter for the watched object.
virtual void keyboardSearch(const QString &) override
Moves to and selects the item best matching the string search.
void mouseReleaseEvent(QMouseEvent *event) override
void mousePressEvent(QMouseEvent *event) override
bool event(QEvent *event) override
void keyPressEvent(QKeyEvent *event) override
void changeDate(QDate date, bool changeMonth)
void setReadOnly(bool enable)
QDate handleMouseEvent(QMouseEvent *event)
QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers) override
Returns a QModelIndex object pointing to the next object in the view, based on the given cursorAction...
void mouseDoubleClickEvent(QMouseEvent *event) override
void mouseMoveEvent(QMouseEvent *event) override
virtual QDate applyToDate(QDate date, QCalendar cal) const override
virtual QString text(QDate date, QCalendar cal, int repeat) const override
virtual void setDate(QDate date, QCalendar cal) override
virtual Section handleKey(int key) override
virtual QString text() const override
constexpr SectionToken(QCalendarDateSectionValidator *v, int rep)
QCalendarDateSectionValidator * validator