基本Widgets(14):【类】QDateTimeEdit [官翻]

QDateTimeEdit Class

QDateTimeEdit类提供了一个用于编辑日期和时间的小部件。

Header#include < QDateTimeEdit>
qmakeQT += widgets
InheritsQAbstractSpinBox
Inherited ByQDateEdit and QTimeEdit

详细说明

img

QDateTimeEdit允许用户通过使用键盘或箭头键来增加和减少日期和时间值来编辑日期。箭头按键可用于在QDateTime编辑框中从一部分移动到另一部分。日期和时间按照设置的格式显示;请参见setDisplayFormat() 。

 QDateTimeEdit *dateEdit = new QDateTimeEdit(QDate::currentDate());
 dateEdit->setMinimumDate(QDate::currentDate().addDays(-365));
 dateEdit->setMaximumDate(QDate::currentDate().addDays(365));
 dateEdit->setDisplayFormat("yyyy.MM.dd");

在这里,我们创建了一个新的QDateTimeEdit对象,它用今天的日期初始化,并将有效日期范围限制为今天加上或减去365天。我们已把顺序 定为月、日、年。

QDateTimeEdit的有效值范围由属性minimumDateTime、maximumDateTime及其各自的日期和时间组件控制。默认情况下,从100 CE开始到9999 CE结束的任何日期时间都有效。

使用弹出式日历小部件

QDateTimeEdit可以配置为允许使用QCalendarWidget来选择日期。这是通过设置calendarPopup属性启用的。此外,还可以通过调用setCalendarWidget() 函数提供一个自定义日历小部件,用作日历弹出窗口。可以使用calendarWidget() 检索现有的日历小部件。

公共类型

enum Section

flags Sections

ConstantValue
NoSection0x0000
AmPmSection0x0001
MSecSection0x0002
SecondSection0x0004
MinuteSection0x0008
HourSection0x0010
DaySection0x0100
MonthSection0x0200
YearSection0x0400

属性

  1. calendarPopup: bool 当前日历弹出显示模式
    单击箭头按钮将显示日历弹出窗口。只有存在有效的日期显示格式时,此属性才有效。

    Access functions:

    • bool calendarPopup() const
    • void setCalendarPopup(bool enable)
  2. currentSection: Section spinbox的当前部分

    Access functions:

    • QDateTimeEdit::Section currentSection() const
    • void setCurrentSection(QDateTimeEdit::Section section)
  3. currentSectionIndex: int spinbox的当前节索引
    如果格式为“yyyy/MM/dd”,则显示文本为“2001/05/21”,光标位置为5,currentSectionIndex返回1。如果光标位置为3,则currentSectionIndex为0,依此类推。

    Access functions:

    • int currentSectionIndex() const
    • void setCurrentSectionIndex(int index)
  4. date: QDate 小部件中设置的QDate
    默认情况下,此属性包含引用2000年1月1日的日期。

    Access functions:

    • QDate date() const
    • void setDate(const QDate &date)

    Notifier signal:

    • void dateChanged(const QDate &date)
  5. dateTime: QDateTime QDateTimeEdit中设置的QDateTime
    设置此属性时,QDateTimeEdit的timespec保持不变,新QDateTime的timespec将被忽略。

    默认情况下,此属性设置为2000 CE的开头。它只能设置为有效的QDateTime值。如果任何操作导致此属性的日期时间值无效,则会将其重置为minimumDateTime属性的值。

    如果QDateTimeEdit没有日期字段,则设置此属性会将小部件的日期范围设置为从该属性的新值的日期开始和结束。

    Access functions:

    • QDateTime dateTime() const
    • void setDateTime(const QDateTime &dateTime)

    Notifier signal:

    • void dateTimeChanged(const QDateTime &datetime)
  6. displayFormat: QString 用于显示日期时间编辑的时间/日期的格式
    此格式在QDateTime::toString() 和QDateTime::fromString() 中描述
    格式字符串示例(假设日期为1969年7月2日):

    FormatResult
    dd.MM.yyyy02.07.1969
    MMM d yyJul 2 69
    MMMM d yyJuly 2 69

    请注意,如果指定两位数的年份,它将被解释为初始化日期时间编辑的世纪。默认的世纪是21世纪(2000-2099)。

    如果指定的格式无效,则不会设置格式。

    Access functions:

    • QString displayFormat() const
    • void setDisplayFormat(const QString &format)
  7. displayedSections: const Sections 日期时间编辑的当前显示字段
    返回此格式的显示节的位集。

    Access functions:

    • QDateTimeEdit::Sections displayedSections() const
  8. maximumDate: QDate 日期时间编辑的最大日期

    此属性只能设置为描述当前maximumTime属性生成有效QDateTime对象的日期的有效QDate对象。setMaximumDate() 接受的最新日期是9999 CE的结束日期。这是此属性的默认值。

    可以使用clearMaximumDateTime() 还原此默认值。

    Access functions:

    • QDate maximumDate() const
    • void setMaximumDate(const QDate &max)
    • void clearMaximumDate()
  9. maximumDateTime: QDateTime 日期时间编辑的最大日期时间

    Access functions:

    • QDateTime maximumDateTime() const
    • void setMaximumDateTime(const QDateTime &dt)
    • void clearMaximumDateTime()
  10. maximumTime: QTime 日期时间编辑的最大时间
    此属性可以设置为任何有效的QTime值。默认情况下,此属性包含23:59:59和999毫秒的时间。可以使用clearMaximumTime() 还原此默认值。

    Access functions:

    • QTime maximumTime() const
    • void setMaximumTime(const QTime &max)
    • void clearMaximumTime()
  11. minimumDate: QDate 日期时间编辑的最小日期

    此属性只能设置为描述当前minimumTime属性生成有效QDateTime对象的日期的有效QDate对象。setMinimumDate() 接受的最早日期是100 CE的开始日期。此属性的默认值为1752年9月14日。可以使用clearMinimumDateTime() 还原此默认值。
    Access functions:

    • QDate minimumDate() const
    • void setMinimumDate(const QDate &min)
    • void clearMinimumDate()
  12. minimumDateTime: QDateTime 日期时间编辑的最小日期时间
    此属性只能设置为有效的QDateTime值。setMinimumDateTime() 接受的最早日期时间是100 CE的开始。该地产的违约日期为1752年9月14日。可以使用clearMinimumDateTime() 还原此默认值。
    Access functions:

    • QDateTime minimumDateTime() const
    • void setMinimumDateTime(const QDateTime &dt)
    • void clearMinimumDateTime()
  13. minimumTime: QTime 日期时间编辑的最小时间

    此属性可以设置为任何有效的QTime值。默认情况下,此属性包含00:00:00和0毫秒的时间。可以使用clearMinimumTime() 还原此默认值。

    Access functions:

    • QTime minimumTime() const
    • void setMinimumTime(const QTime &min)
    • void clearMinimumTime()
  14. sectionCount: const int 显示部分的数量

    如果格式为’yyyy/yy/yyy’,sectionCount返回3

    Access functions:

    • int sectionCount() const
  15. time: QTime 小部件中设置的QTime
    默认情况下,此属性包含00:00:00和0毫秒的时间。
    Access functions:

    • QTime time() const
    • void setTime(const QTime &time)

    Notifier signal:

    • void timeChanged(const QTime &time)
  16. timeSpec: Qt::TimeSpec 日期时间编辑使用的当前时间段

    Access functions:

    • Qt::TimeSpec timeSpec() const
    • void setTimeSpec(Qt::TimeSpec spec)

    enum Qt::TimeSpec

    ConstantValueDescription
    LocalTime0区域设置相关时间(时区和夏令时)。
    UTC1协调世界时,取代格林威治标准时间。
    OffsetFromUTC2以秒为单位的与协调世界时的偏移量。
    TimeZone3使用一组特定的夏令时规则的指定时区。

公共函数

构造析构

  1. QDateTimeEdit(const QTime &time, QWidget *parent = nullptr)
  2. QDateTimeEdit(const QDate &date, QWidget *parent = nullptr)
  3. QDateTimeEdit(const QDateTime &datetime, QWidget *parent = nullptr)
  4. QDateTimeEdit(QWidget *parent = nullptr)
  5. virtual ~QDateTimeEdit()

属性相关

  1. bool calendarPopup() const
  2. void setCalendarPopup(bool enable)
  3. QDateTimeEdit::Section currentSection() const
  4. void setCurrentSection(QDateTimeEdit::Section section)
  5. int currentSectionIndex() const
  6. void setCurrentSectionIndex(int index)
  7. QDate date() const
  8. QDateTime dateTime() const
  9. QString displayFormat() const
  10. void setDisplayFormat(const QString &format)
  11. QDateTimeEdit::Sections displayedSections() const
  12. QDate maximumDate() const
  13. void setMaximumDate(const QDate &max)
  14. void clearMaximumDate()
  15. QDateTime maximumDateTime() const
  16. void setMaximumDateTime(const QDateTime &dt)
  17. void clearMaximumDateTime()
  18. QTime maximumTime() const
  19. void setMaximumTime(const QTime &max)
  20. void clearMaximumTime()
  21. QDate minimumDate() const
  22. void setMinimumDate(const QDate &min)
  23. void clearMinimumDate()
  24. QDateTime minimumDateTime() const
  25. void setMinimumDateTime(const QDateTime &dt)
  26. void clearMinimumDateTime()
  27. QTime minimumTime() const
  28. void setMinimumTime(const QTime &min)
  29. void clearMinimumTime()
  30. int sectionCount() const
  31. QTime time() const
  32. Qt::TimeSpec timeSpec() const
  33. void setTimeSpec(Qt::TimeSpec spec)

特殊

  1. QCalendarWidget * calendarWidget() const
    如果calendarPopup设置为true并且(sections() & DateSections_Mask) != 0,则返回编辑器的日历小部件。

    如果没有设置日历小部件,则此函数创建并返回一个日历小部件。如果没有设置日历小部件,此函数将创建并返回一个日历小部件。

  2. void setCalendarWidget(QCalendarWidget *calendarWidget)
    将给定的calendarWidget设置为用于日历弹出窗口的小部件 。编辑器不会自动获得日历小部件的所有权。
    注意:在设置日历小部件之前,必须将calendarPopup设置为true。

  3. QDateTimeEdit::Section sectionAt(int index) const 返回索引处的部分

    如果格式为’yyyy/MM/dd’,sectionAt(0)返回YearSection,sectionAt(1)返回MonthSection,sectionAt(2)返回YearSection,

  4. QString sectionText(QDateTimeEdit::Section section) const 返回给定节中的文本

  5. void setSelectedSection(QDateTimeEdit::Section section) 设置选定的部分

  6. void setDateRange(const QDate &min, const QDate &max) 设置日期范围

  7. void setDateTimeRange(const QDateTime &min, const QDateTime &max) 设置日期时间范围

  8. void setTimeRange(const QTime &min, const QTime &max) 设置时间范围

重写的公共函数

  1. virtual void clear() override
  2. virtual bool event(QEvent *event) override
  3. virtual QSize sizeHint() const override
  4. virtual void stepBy(int steps) override

公共槽

  1. void setDate(const QDate &date)
  2. void setDateTime(const QDateTime &dateTime)
  3. void setTime(const QTime &time)

信号

  1. void dateChanged(const QDate &date)
  2. void dateTimeChanged(const QDateTime &datetime)
  3. void timeChanged(const QTime &time)

受保护的函数

  1. virtual QDateTime dateTimeFromText(const QString &text) const
  2. void initStyleOption(QStyleOptionSpinBox *option) const
  3. virtual QString textFromDateTime(const QDateTime &dateTime) const

重写的受保护的函数

  1. virtual void fixup(QString &input) const override
  2. virtual void focusInEvent(QFocusEvent *event) override
  3. virtual bool focusNextPrevChild(bool next) override
  4. virtual void keyPressEvent(QKeyEvent *event) override
  5. virtual void mousePressEvent(QMouseEvent *event) override
  6. virtual void paintEvent(QPaintEvent *event) override
  7. virtual QAbstractSpinBox::StepEnabled stepEnabled() const override
  8. virtual QValidator::State validate(QString &text, int &pos) const override
  9. virtual void wheelEvent(QWheelEvent *event) override
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值