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
qdatetimeedit.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// Qt-Security score:significant reason:default
4
5#ifndef QDATETIMEEDIT_H
6#define QDATETIMEEDIT_H
7
8#include <QtWidgets/qtwidgetsglobal.h>
9#include <QtCore/qtimezone.h>
10#include <QtCore/qcalendar.h>
11#include <QtCore/qvariant.h>
12#include <QtWidgets/qabstractspinbox.h>
13
15
16QT_BEGIN_NAMESPACE
17
18class QDateTimeEditPrivate;
19class QStyleOptionSpinBox;
20class QCalendarWidget;
21
22class Q_WIDGETS_EXPORT QDateTimeEdit : public QAbstractSpinBox
23{
24 Q_OBJECT
25
26 Q_PROPERTY(QDateTime dateTime READ dateTime WRITE setDateTime NOTIFY dateTimeChanged USER true)
27 Q_PROPERTY(QDate date READ date WRITE setDate NOTIFY dateChanged)
28 Q_PROPERTY(QTime time READ time WRITE setTime NOTIFY timeChanged)
29 Q_PROPERTY(QDateTime maximumDateTime READ maximumDateTime WRITE setMaximumDateTime
30 RESET clearMaximumDateTime)
31 Q_PROPERTY(QDateTime minimumDateTime READ minimumDateTime WRITE setMinimumDateTime
32 RESET clearMinimumDateTime)
33 Q_PROPERTY(QDate maximumDate READ maximumDate WRITE setMaximumDate RESET clearMaximumDate)
34 Q_PROPERTY(QDate minimumDate READ minimumDate WRITE setMinimumDate RESET clearMinimumDate)
35 Q_PROPERTY(QTime maximumTime READ maximumTime WRITE setMaximumTime RESET clearMaximumTime)
36 Q_PROPERTY(QTime minimumTime READ minimumTime WRITE setMinimumTime RESET clearMinimumTime)
37 Q_PROPERTY(Section currentSection READ currentSection WRITE setCurrentSection)
38 Q_PROPERTY(Sections displayedSections READ displayedSections)
39 Q_PROPERTY(QString displayFormat READ displayFormat WRITE setDisplayFormat)
40 Q_PROPERTY(bool calendarPopup READ calendarPopup WRITE setCalendarPopup)
41 Q_PROPERTY(int currentSectionIndex READ currentSectionIndex WRITE setCurrentSectionIndex)
42 Q_PROPERTY(int sectionCount READ sectionCount)
43#if QT_DEPRECATED_SINCE(6, 10)
44 Q_PROPERTY(Qt::TimeSpec timeSpec READ timeSpec WRITE setTimeSpec)
45#endif
46 Q_PROPERTY(QTimeZone timeZone READ timeZone WRITE setTimeZone)
47public:
48 enum Section { // a sub-type of QDateTimeParser's like-named enum.
49 NoSection = 0x0000,
50 AmPmSection = 0x0001,
51 MSecSection = 0x0002,
52 SecondSection = 0x0004,
53 MinuteSection = 0x0008,
54 HourSection = 0x0010,
55 DaySection = 0x0100,
56 MonthSection = 0x0200,
57 YearSection = 0x0400,
58 TimeSections_Mask = AmPmSection|MSecSection|SecondSection|MinuteSection|HourSection,
59 DateSections_Mask = DaySection|MonthSection|YearSection
60 };
61 Q_ENUM(Section)
62
63 Q_DECLARE_FLAGS(Sections, Section)
64 Q_FLAG(Sections)
65
66 explicit QDateTimeEdit(QWidget *parent = nullptr);
67 explicit QDateTimeEdit(const QDateTime &dt, QWidget *parent = nullptr);
68 explicit QDateTimeEdit(QDate d, QWidget *parent = nullptr);
69 explicit QDateTimeEdit(QTime t, QWidget *parent = nullptr);
70 ~QDateTimeEdit();
71
72 QDateTime dateTime() const;
73 QDate date() const;
74 QTime time() const;
75
76 QCalendar calendar() const;
77 void setCalendar(QCalendar calendar);
78
79 QDateTime minimumDateTime() const;
80 void clearMinimumDateTime();
81 void setMinimumDateTime(const QDateTime &dt);
82
83 QDateTime maximumDateTime() const;
84 void clearMaximumDateTime();
85 void setMaximumDateTime(const QDateTime &dt);
86
87 void setDateTimeRange(const QDateTime &min, const QDateTime &max);
88
89 QDate minimumDate() const;
90 void setMinimumDate(QDate min);
91 void clearMinimumDate();
92
93 QDate maximumDate() const;
94 void setMaximumDate(QDate max);
95 void clearMaximumDate();
96
97 void setDateRange(QDate min, QDate max);
98
99 QTime minimumTime() const;
100 void setMinimumTime(QTime min);
101 void clearMinimumTime();
102
103 QTime maximumTime() const;
104 void setMaximumTime(QTime max);
105 void clearMaximumTime();
106
107 void setTimeRange(QTime min, QTime max);
108
109 Sections displayedSections() const;
110 Section currentSection() const;
111 Section sectionAt(int index) const;
112 void setCurrentSection(Section section);
113
114 int currentSectionIndex() const;
115 void setCurrentSectionIndex(int index);
116
117 QCalendarWidget *calendarWidget() const;
118 void setCalendarWidget(QCalendarWidget *calendarWidget);
119
120 int sectionCount() const;
121
122 void setSelectedSection(Section section);
123
124 QString sectionText(Section section) const;
125
126 QString displayFormat() const;
127 void setDisplayFormat(const QString &format);
128
129 bool calendarPopup() const;
130 void setCalendarPopup(bool enable);
131
132#if QT_DEPRECATED_SINCE(6, 10)
133 QT_DEPRECATED_VERSION_X_6_10("Use timeZone() instead")
134 Qt::TimeSpec timeSpec() const;
135 QT_DEPRECATED_VERSION_X_6_10("Use setTimeZone() instead")
136 void setTimeSpec(Qt::TimeSpec spec);
137#endif
138 QTimeZone timeZone() const;
139 void setTimeZone(const QTimeZone &zone);
140
141 QSize sizeHint() const override;
142
143 void clear() override;
144 void stepBy(int steps) override;
145
146 bool event(QEvent *event) override;
147Q_SIGNALS:
148 void dateTimeChanged(const QDateTime &dateTime);
149 void timeChanged(QTime time);
150 void dateChanged(QDate date);
151
152public Q_SLOTS:
153 void setDateTime(const QDateTime &dateTime);
154 void setDate(QDate date);
155 void setTime(QTime time);
156
157protected:
158 void keyPressEvent(QKeyEvent *event) override;
159#if QT_CONFIG(wheelevent)
160 void wheelEvent(QWheelEvent *event) override;
161#endif
162 void focusInEvent(QFocusEvent *event) override;
163 bool focusNextPrevChild(bool next) override;
164 QValidator::State validate(QString &input, int &pos) const override;
165 void fixup(QString &input) const override;
166
167 virtual QDateTime dateTimeFromText(const QString &text) const;
168 virtual QString textFromDateTime(const QDateTime &dt) const;
169 StepEnabled stepEnabled() const override;
170 void mousePressEvent(QMouseEvent *event) override;
171 void paintEvent(QPaintEvent *event) override;
172 void initStyleOption(QStyleOptionSpinBox *option) const override;
173
174 QDateTimeEdit(const QVariant &val, QMetaType::Type parserType, QWidget *parent = nullptr);
175private:
176 Q_DECLARE_PRIVATE(QDateTimeEdit)
177 Q_DISABLE_COPY(QDateTimeEdit)
178
179 Q_PRIVATE_SLOT(d_func(), void _q_resetButton())
180};
181
182class Q_WIDGETS_EXPORT QTimeEdit : public QDateTimeEdit
183{
184 Q_OBJECT
185 Q_PROPERTY(QTime time READ time WRITE setTime NOTIFY userTimeChanged USER true)
186public:
187 explicit QTimeEdit(QWidget *parent = nullptr);
188 explicit QTimeEdit(QTime time, QWidget *parent = nullptr);
189 ~QTimeEdit();
190
191Q_SIGNALS:
192 void userTimeChanged(QTime time);
193};
194
195class Q_WIDGETS_EXPORT QDateEdit : public QDateTimeEdit
196{
197 Q_OBJECT
198 Q_PROPERTY(QDate date READ date WRITE setDate NOTIFY userDateChanged USER true)
199public:
200 explicit QDateEdit(QWidget *parent = nullptr);
201 explicit QDateEdit(QDate date, QWidget *parent = nullptr);
202 ~QDateEdit();
203
204Q_SIGNALS:
205 void userDateChanged(QDate date);
206};
207
208Q_DECLARE_OPERATORS_FOR_FLAGS(QDateTimeEdit::Sections)
209
210QT_END_NAMESPACE
211
212#endif // QDATETIMEEDIT_H
The QDateEdit class provides a widget for editing dates based on the QDateTimeEdit widget.
The QDateTimeEdit class provides a widget for editing dates and times.
The QTimeEdit class provides a widget for editing times based on the QDateTimeEdit widget.
#define QDTEDEBUG
QT_REQUIRE_CONFIG(thread)