Qt 6.x
The Qt SDK
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
4#ifndef QDATETIMEEDIT_H
5#define QDATETIMEEDIT_H
6
7#include <QtWidgets/qtwidgetsglobal.h>
8#include <QtCore/qdatetime.h>
9#include <QtCore/qcalendar.h>
10#include <QtCore/qvariant.h>
11#include <QtWidgets/qabstractspinbox.h>
12
13QT_REQUIRE_CONFIG(datetimeedit);
14
16
18class QStyleOptionSpinBox;
19class QCalendarWidget;
20
21class Q_WIDGETS_EXPORT QDateTimeEdit : public QAbstractSpinBox
22{
24
25 Q_PROPERTY(QDateTime dateTime READ dateTime WRITE setDateTime NOTIFY dateTimeChanged USER true)
26 Q_PROPERTY(QDate date READ date WRITE setDate NOTIFY dateChanged)
27 Q_PROPERTY(QTime time READ time WRITE setTime NOTIFY timeChanged)
28 Q_PROPERTY(QDateTime maximumDateTime READ maximumDateTime WRITE setMaximumDateTime
29 RESET clearMaximumDateTime)
30 Q_PROPERTY(QDateTime minimumDateTime READ minimumDateTime WRITE setMinimumDateTime
31 RESET clearMinimumDateTime)
32 Q_PROPERTY(QDate maximumDate READ maximumDate WRITE setMaximumDate RESET clearMaximumDate)
33 Q_PROPERTY(QDate minimumDate READ minimumDate WRITE setMinimumDate RESET clearMinimumDate)
34 Q_PROPERTY(QTime maximumTime READ maximumTime WRITE setMaximumTime RESET clearMaximumTime)
35 Q_PROPERTY(QTime minimumTime READ minimumTime WRITE setMinimumTime RESET clearMinimumTime)
36 Q_PROPERTY(Section currentSection READ currentSection WRITE setCurrentSection)
37 Q_PROPERTY(Sections displayedSections READ displayedSections)
38 Q_PROPERTY(QString displayFormat READ displayFormat WRITE setDisplayFormat)
39 Q_PROPERTY(bool calendarPopup READ calendarPopup WRITE setCalendarPopup)
40 Q_PROPERTY(int currentSectionIndex READ currentSectionIndex WRITE setCurrentSectionIndex)
41 Q_PROPERTY(int sectionCount READ sectionCount)
42 Q_PROPERTY(Qt::TimeSpec timeSpec READ timeSpec WRITE setTimeSpec)
43public:
44 enum Section { // a sub-type of QDateTimeParser's like-named enum.
45 NoSection = 0x0000,
46 AmPmSection = 0x0001,
47 MSecSection = 0x0002,
48 SecondSection = 0x0004,
49 MinuteSection = 0x0008,
50 HourSection = 0x0010,
51 DaySection = 0x0100,
52 MonthSection = 0x0200,
53 YearSection = 0x0400,
54 TimeSections_Mask = AmPmSection|MSecSection|SecondSection|MinuteSection|HourSection,
55 DateSections_Mask = DaySection|MonthSection|YearSection
56 };
57 Q_ENUM(Section)
58
59 Q_DECLARE_FLAGS(Sections, Section)
60 Q_FLAG(Sections)
61
62 explicit QDateTimeEdit(QWidget *parent = nullptr);
63 explicit QDateTimeEdit(const QDateTime &dt, QWidget *parent = nullptr);
64 explicit QDateTimeEdit(QDate d, QWidget *parent = nullptr);
65 explicit QDateTimeEdit(QTime t, QWidget *parent = nullptr);
67
68 QDateTime dateTime() const;
69 QDate date() const;
70 QTime time() const;
71
72 QCalendar calendar() const;
73 void setCalendar(QCalendar calendar);
74
75 QDateTime minimumDateTime() const;
76 void clearMinimumDateTime();
77 void setMinimumDateTime(const QDateTime &dt);
78
79 QDateTime maximumDateTime() const;
80 void clearMaximumDateTime();
81 void setMaximumDateTime(const QDateTime &dt);
82
83 void setDateTimeRange(const QDateTime &min, const QDateTime &max);
84
85 QDate minimumDate() const;
86 void setMinimumDate(QDate min);
87 void clearMinimumDate();
88
89 QDate maximumDate() const;
90 void setMaximumDate(QDate max);
91 void clearMaximumDate();
92
93 void setDateRange(QDate min, QDate max);
94
95 QTime minimumTime() const;
96 void setMinimumTime(QTime min);
97 void clearMinimumTime();
98
99 QTime maximumTime() const;
100 void setMaximumTime(QTime max);
101 void clearMaximumTime();
102
103 void setTimeRange(QTime min, QTime max);
104
105 Sections displayedSections() const;
106 Section currentSection() const;
107 Section sectionAt(int index) const;
108 void setCurrentSection(Section section);
109
110 int currentSectionIndex() const;
111 void setCurrentSectionIndex(int index);
112
113 QCalendarWidget *calendarWidget() const;
114 void setCalendarWidget(QCalendarWidget *calendarWidget);
115
116 int sectionCount() const;
117
118 void setSelectedSection(Section section);
119
120 QString sectionText(Section section) const;
121
122 QString displayFormat() const;
123 void setDisplayFormat(const QString &format);
124
125 bool calendarPopup() const;
126 void setCalendarPopup(bool enable);
127
128 Qt::TimeSpec timeSpec() const;
129 void setTimeSpec(Qt::TimeSpec spec);
130
131 QSize sizeHint() const override;
132
133 void clear() override;
134 void stepBy(int steps) override;
135
136 bool event(QEvent *event) override;
141
142public Q_SLOTS:
143 void setDateTime(const QDateTime &dateTime);
144 void setDate(QDate date);
145 void setTime(QTime time);
146
147protected:
148 void keyPressEvent(QKeyEvent *event) override;
149#if QT_CONFIG(wheelevent)
150 void wheelEvent(QWheelEvent *event) override;
151#endif
152 void focusInEvent(QFocusEvent *event) override;
153 bool focusNextPrevChild(bool next) override;
154 QValidator::State validate(QString &input, int &pos) const override;
155 void fixup(QString &input) const override;
156
157 virtual QDateTime dateTimeFromText(const QString &text) const;
158 virtual QString textFromDateTime(const QDateTime &dt) const;
159 StepEnabled stepEnabled() const override;
160 void mousePressEvent(QMouseEvent *event) override;
161 void paintEvent(QPaintEvent *event) override;
162 void initStyleOption(QStyleOptionSpinBox *option) const override;
163
164 QDateTimeEdit(const QVariant &val, QMetaType::Type parserType, QWidget *parent = nullptr);
165private:
166 Q_DECLARE_PRIVATE(QDateTimeEdit)
167 Q_DISABLE_COPY(QDateTimeEdit)
168
169 Q_PRIVATE_SLOT(d_func(), void _q_resetButton())
170};
171
172class Q_WIDGETS_EXPORT QTimeEdit : public QDateTimeEdit
173{
175 Q_PROPERTY(QTime time READ time WRITE setTime NOTIFY userTimeChanged USER true)
176public:
177 explicit QTimeEdit(QWidget *parent = nullptr);
178 explicit QTimeEdit(QTime time, QWidget *parent = nullptr);
179 ~QTimeEdit();
180
182 void userTimeChanged(QTime time);
183};
184
185class Q_WIDGETS_EXPORT QDateEdit : public QDateTimeEdit
186{
188 Q_PROPERTY(QDate date READ date WRITE setDate NOTIFY userDateChanged USER true)
189public:
190 explicit QDateEdit(QWidget *parent = nullptr);
191 explicit QDateEdit(QDate date, QWidget *parent = nullptr);
192 ~QDateEdit();
193
196};
197
198Q_DECLARE_OPERATORS_FOR_FLAGS(QDateTimeEdit::Sections)
199
201
202#endif // QDATETIMEEDIT_H
The QAbstractSpinBox class provides a spinbox and a line edit to display values.
void focusInEvent(QFocusEvent *event) override
\reimp
void paintEvent(QPaintEvent *event) override
\reimp
void mousePressEvent(QMouseEvent *event) override
\reimp
virtual void fixup(QString &input) const
This virtual function is called by the QAbstractSpinBox if the input is not validated to QValidator::...
virtual void stepBy(int steps)
Virtual function that is called whenever the user triggers a step.
virtual void initStyleOption(QStyleOptionSpinBox *option) const
Initialize option with the values from this QSpinBox.
QSize sizeHint() const override
\reimp
virtual StepEnabled stepEnabled() const
Virtual function that determines whether stepping up and down is legal at any given time.
virtual void clear()
Clears the lineedit of all text but prefix and suffix.
void keyPressEvent(QKeyEvent *event) override
\reimp
virtual QValidator::State validate(QString &input, int &pos) const
This virtual function is called by the QAbstractSpinBox to determine whether input is valid.
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
The QDateEdit class provides a widget for editing dates based on the QDateTimeEdit widget.
void userDateChanged(QDate date)
This signal only exists to fully implement the date Q_PROPERTY on the class.
The QDateTimeEdit class provides a widget for editing dates and times.
void dateTimeChanged(const QDateTime &dateTime)
This signal is emitted whenever the date or time is changed.
Section
\value NoSection \value AmPmSection \value MSecSection \value SecondSection \value MinuteSection \val...
void dateChanged(QDate date)
This signal is emitted whenever the date is changed.
void timeChanged(QTime time)
This signal is emitted whenever the time is changed.
\inmodule QtCore\reentrant
Definition qdatetime.h:257
\inmodule QtCore \reentrant
Definition qdatetime.h:27
\inmodule QtCore
Definition qcoreevent.h:45
The QFocusEvent class contains event parameters for widget focus events.
Definition qevent.h:469
The QKeyEvent class describes a key event.
Definition qevent.h:423
Type
\macro Q_DECLARE_OPAQUE_POINTER(PointerType)
Definition qmetatype.h:324
\inmodule QtGui
Definition qevent.h:195
The QPaintEvent class contains event parameters for paint events.
Definition qevent.h:485
\inmodule QtCore
Definition qsize.h:25
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:127
The QTimeEdit class provides a widget for editing times based on the QDateTimeEdit widget.
\inmodule QtCore \reentrant
Definition qdatetime.h:189
State
This enum type defines the states in which a validated string can exist.
Definition qvalidator.h:30
\inmodule QtCore
Definition qvariant.h:64
The QWidget class is the base class of all user interface objects.
Definition qwidget.h:99
virtual bool focusNextPrevChild(bool next)
Finds a new widget to give the keyboard focus to, as appropriate for Tab and Shift+Tab,...
Definition qwidget.cpp:6800
QString text
QDate date
[1]
short next
Definition keywords.cpp:445
Combined button and popup list for selecting options.
static void setDateTime(QDateTimeData &d, QDate date, QTime time)
#define Q_DECLARE_FLAGS(Flags, Enum)
Definition qflags.h:174
#define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags)
Definition qflags.h:194
GLuint index
[2]
GLboolean enable
GLint GLsizei GLsizei GLenum format
struct _cl_event * event
GLuint GLfloat * val
GLdouble GLdouble t
Definition qopenglext.h:243
GLuint GLenum option
GLenum GLenum GLenum input
#define QT_REQUIRE_CONFIG(feature)
#define Q_ENUM(x)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define Q_FLAG(x)
#define Q_SLOTS
#define Q_PRIVATE_SLOT(d, signature)
#define Q_SIGNALS
QDateTime dateTime
[12]
calendar setMaximumDate(QDate(2006, 7, 3))
calendar setMinimumDate(QDate(2006, 6, 19))
QCalendarWidget * calendar
[0]
calendar setDateRange(min, max)
setMinimumDateTime(min)
[1]
setDateTimeRange(min, max)
[0]
setTimeRange(min, max)
[4]
dateEdit setDisplayFormat("yyyy.MM.dd")
setMaximumTime(max)
setMaximumDateTime(max)
setMinimumTime(min)
[5]
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent