4#ifndef QCALENDARWIDGET_H
5#define QCALENDARWIDGET_H
7#include <QtWidgets/qtwidgetsglobal.h>
8#include <QtWidgets/qwidget.h>
9#include <QtCore/qdatetime.h>
22 Q_ENUMS(Qt::DayOfWeek)
23 Q_PROPERTY(QDate selectedDate READ selectedDate WRITE setSelectedDate)
24 Q_PROPERTY(QDate minimumDate READ minimumDate WRITE setMinimumDate RESET clearMinimumDate)
25 Q_PROPERTY(QDate maximumDate READ maximumDate WRITE setMaximumDate RESET clearMaximumDate)
26 Q_PROPERTY(Qt::DayOfWeek firstDayOfWeek READ firstDayOfWeek WRITE setFirstDayOfWeek)
27 Q_PROPERTY(
bool gridVisible READ isGridVisible WRITE setGridVisible)
28 Q_PROPERTY(SelectionMode selectionMode READ selectionMode WRITE setSelectionMode)
29 Q_PROPERTY(HorizontalHeaderFormat horizontalHeaderFormat READ horizontalHeaderFormat
30 WRITE setHorizontalHeaderFormat)
31 Q_PROPERTY(VerticalHeaderFormat verticalHeaderFormat READ verticalHeaderFormat
32 WRITE setVerticalHeaderFormat)
33 Q_PROPERTY(
bool navigationBarVisible READ isNavigationBarVisible WRITE setNavigationBarVisible)
34 Q_PROPERTY(
bool dateEditEnabled READ isDateEditEnabled WRITE setDateEditEnabled)
35 Q_PROPERTY(
int dateEditAcceptDelay READ dateEditAcceptDelay WRITE setDateEditAcceptDelay)
38 enum HorizontalHeaderFormat {
44 Q_ENUM(HorizontalHeaderFormat)
46 enum VerticalHeaderFormat {
50 Q_ENUM(VerticalHeaderFormat)
58 explicit QCalendarWidget(QWidget *parent =
nullptr);
61 virtual QSize sizeHint()
const override;
62 virtual QSize minimumSizeHint()
const override;
64 QDate selectedDate()
const;
66 int yearShown()
const;
67 int monthShown()
const;
69 QDate minimumDate()
const;
70 void setMinimumDate(QDate date);
71 void clearMinimumDate();
73 QDate maximumDate()
const;
74 void setMaximumDate(QDate date);
75 void clearMaximumDate();
77 Qt::DayOfWeek firstDayOfWeek()
const;
78 void setFirstDayOfWeek(Qt::DayOfWeek dayOfWeek);
80 bool isNavigationBarVisible()
const;
81 bool isGridVisible()
const;
83 QCalendar calendar()
const;
84 void setCalendar(QCalendar calendar);
86 SelectionMode selectionMode()
const;
87 void setSelectionMode(SelectionMode mode);
89 HorizontalHeaderFormat horizontalHeaderFormat()
const;
90 void setHorizontalHeaderFormat(HorizontalHeaderFormat format);
92 VerticalHeaderFormat verticalHeaderFormat()
const;
93 void setVerticalHeaderFormat(VerticalHeaderFormat format);
95 QTextCharFormat headerTextFormat()
const;
96 void setHeaderTextFormat(
const QTextCharFormat &format);
98 QTextCharFormat weekdayTextFormat(Qt::DayOfWeek dayOfWeek)
const;
99 void setWeekdayTextFormat(Qt::DayOfWeek dayOfWeek,
const QTextCharFormat &format);
101 QMap<QDate, QTextCharFormat> dateTextFormat()
const;
102 QTextCharFormat dateTextFormat(QDate date)
const;
103 void setDateTextFormat(QDate date,
const QTextCharFormat &format);
105 bool isDateEditEnabled()
const;
106 void setDateEditEnabled(
bool enable);
108 int dateEditAcceptDelay()
const;
109 void setDateEditAcceptDelay(
int delay);
112 bool event(QEvent *event) override;
113 bool eventFilter(QObject *watched, QEvent *event) override;
114 void mousePressEvent(QMouseEvent *event) override;
115 void resizeEvent(QResizeEvent * event) override;
116 void keyPressEvent(QKeyEvent * event) override;
118 virtual void paintCell(QPainter *painter,
const QRect &rect, QDate date)
const;
119 void updateCell(QDate date);
123 void setSelectedDate(QDate date);
124 void setDateRange(QDate min, QDate max);
125 void setCurrentPage(
int year,
int month);
126 void setGridVisible(
bool show);
127 void setNavigationBarVisible(
bool visible);
128 void showNextMonth();
129 void showPreviousMonth();
131 void showPreviousYear();
132 void showSelectedDate();
136 void selectionChanged();
137 void clicked(QDate date);
138 void activated(QDate date);
139 void currentPageChanged(
int year,
int month);
142 Q_DECLARE_PRIVATE(QCalendarWidget)
143 Q_DISABLE_COPY(QCalendarWidget)
145 Q_PRIVATE_SLOT(d_func(),
void _q_slotShowDate(QDate date))
146 Q_PRIVATE_SLOT(d_func(),
void _q_slotChangeDate(QDate date))
147 Q_PRIVATE_SLOT(d_func(),
void _q_slotChangeDate(QDate date,
bool changeMonth))
148 Q_PRIVATE_SLOT(d_func(),
void _q_editingFinished())
149 Q_PRIVATE_SLOT(d_func(),
void _q_prevMonthClicked())
150 Q_PRIVATE_SLOT(d_func(),
void _q_nextMonthClicked())
151 Q_PRIVATE_SLOT(d_func(),
void _q_yearEditingFinished())
152 Q_PRIVATE_SLOT(d_func(),
void _q_yearClicked())
153 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.
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