Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qcalendarwidget.h
Go to the documentation of this file.
1// Copyright (C) 2020 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QCALENDARWIDGET_H
5#define QCALENDARWIDGET_H
6
7#include <QtWidgets/qtwidgetsglobal.h>
8#include <QtWidgets/qwidget.h>
9#include <QtCore/qdatetime.h>
10
12
13QT_BEGIN_NAMESPACE
14
15class QDate;
16class QTextCharFormat;
18
19class Q_WIDGETS_EXPORT QCalendarWidget : public QWidget
20{
21 Q_OBJECT
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)
36
37public:
38 enum HorizontalHeaderFormat {
39 NoHorizontalHeader,
40 SingleLetterDayNames,
41 ShortDayNames,
42 LongDayNames
43 };
44 Q_ENUM(HorizontalHeaderFormat)
45
46 enum VerticalHeaderFormat {
47 NoVerticalHeader,
48 ISOWeekNumbers
49 };
50 Q_ENUM(VerticalHeaderFormat)
51
52 enum SelectionMode {
53 NoSelection,
54 SingleSelection
55 };
56 Q_ENUM(SelectionMode)
57
58 explicit QCalendarWidget(QWidget *parent = nullptr);
59 ~QCalendarWidget();
60
61 virtual QSize sizeHint() const override;
62 virtual QSize minimumSizeHint() const override;
63
64 QDate selectedDate() const;
65
66 int yearShown() const;
67 int monthShown() const;
68
69 QDate minimumDate() const;
70 void setMinimumDate(QDate date);
71 void clearMinimumDate();
72
73 QDate maximumDate() const;
74 void setMaximumDate(QDate date);
75 void clearMaximumDate();
76
77 Qt::DayOfWeek firstDayOfWeek() const;
78 void setFirstDayOfWeek(Qt::DayOfWeek dayOfWeek);
79
80 bool isNavigationBarVisible() const;
81 bool isGridVisible() const;
82
83 QCalendar calendar() const;
84 void setCalendar(QCalendar calendar);
85
86 SelectionMode selectionMode() const;
87 void setSelectionMode(SelectionMode mode);
88
89 HorizontalHeaderFormat horizontalHeaderFormat() const;
90 void setHorizontalHeaderFormat(HorizontalHeaderFormat format);
91
92 VerticalHeaderFormat verticalHeaderFormat() const;
93 void setVerticalHeaderFormat(VerticalHeaderFormat format);
94
95 QTextCharFormat headerTextFormat() const;
96 void setHeaderTextFormat(const QTextCharFormat &format);
97
98 QTextCharFormat weekdayTextFormat(Qt::DayOfWeek dayOfWeek) const;
99 void setWeekdayTextFormat(Qt::DayOfWeek dayOfWeek, const QTextCharFormat &format);
100
101 QMap<QDate, QTextCharFormat> dateTextFormat() const;
102 QTextCharFormat dateTextFormat(QDate date) const;
103 void setDateTextFormat(QDate date, const QTextCharFormat &format);
104
105 bool isDateEditEnabled() const;
106 void setDateEditEnabled(bool enable);
107
108 int dateEditAcceptDelay() const;
109 void setDateEditAcceptDelay(int delay);
110
111protected:
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;
117
118 virtual void paintCell(QPainter *painter, const QRect &rect, QDate date) const;
119 void updateCell(QDate date);
120 void updateCells();
121
122public Q_SLOTS:
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();
130 void showNextYear();
131 void showPreviousYear();
132 void showSelectedDate();
133 void showToday();
134
135Q_SIGNALS:
136 void selectionChanged();
137 void clicked(QDate date);
138 void activated(QDate date);
139 void currentPageChanged(int year, int month);
140
141private:
142 Q_DECLARE_PRIVATE(QCalendarWidget)
143 Q_DISABLE_COPY(QCalendarWidget)
144
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))
154
155};
156
157QT_END_NAMESPACE
158
159#endif // QCALENDARWIDGET_H
QCalendarTextNavigator * m_navigator
void setNavigatorEnabled(bool enable)
void paintCell(QPainter *painter, const QRect &rect, QDate date) const
QItemSelectionModel * m_selection
QMap< int, QAction * > monthToAction
void showMonth(int year, int month)
void _q_monthChanged(QAction *)
void _q_slotChangeDate(QDate date, bool changeMonth)
void createNavigationBar(QWidget *widget)
void _q_slotShowDate(QDate date)
QCalendarDelegate * m_delegate
void updateCurrentPage(QDate newDate)
void _q_slotChangeDate(QDate date)
The QCalendarWidget class provides a monthly based calendar widget allowing the user to select a date...
The QCalendar class describes calendar systems.
Definition qcalendar.h:53
Definition qmap.h:189
\inmodule QtCore
constexpr QModelIndex() noexcept
Creates a new empty model index.
void paintEvent(QPaintEvent *e) override
\reimp
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
virtual QString text(QDate date, QCalendar cal, int repeat) const =0
static QString highlightString(const QString &str, int pos)
virtual QString text() const =0
void setLocale(const QLocale &locale)
void setInitialDate(QDate date, QCalendar cal)
void handleKeyEvent(QKeyEvent *keyEvent, QCalendar cal)
void setFormat(const QString &format)
QString currentText(QCalendar cal) 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)
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.
QString monthName(const QLocale &locale, int month)
void setFirstColumnDay(Qt::DayOfWeek dayOfWeek)
int columnForDayOfWeek(Qt::DayOfWeek day) const
Qt::ItemFlags flags(const QModelIndex &index) const override
\reimp
StaticDayOfWeekAssociativeArray< QTextCharFormat > m_dayFormats
int columnForFirstOfMonth(QDate date) const
void cellForDate(QDate date, int *row, int *column) 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.
Qt::DayOfWeek firstColumnDay() const
void setHorizontalHeaderFormat(QCalendarWidget::HorizontalHeaderFormat format)
Qt::DayOfWeek dayOfWeekForColumn(int section) 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
virtual QDate applyToDate(QDate date, QCalendar cal) const override
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
void timerEvent(QTimerEvent *e) override
This event handler can be reimplemented in a subclass to receive timer events for the object.
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 clicked(QDate date)
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
@ RowCount
@ MinimumDayOffset
@ HeaderRow
@ HeaderColumn
@ ColumnCount
static QString formatNumber(int number, int fieldWidth)
Q_DECLARE_TYPEINFO(QtPrivate::SectionToken, Q_PRIMITIVE_TYPE)
QT_REQUIRE_CONFIG(calendarwidget)
#define qApp
constexpr SectionToken(QCalendarDateSectionValidator *v, int rep)
QCalendarDateSectionValidator * validator