PyQt5之QDateTimeEdit编辑日期时间

PyQt5之QDateTimeEdit

QDateTimeEdit是一个允许用户编辑日期时间的控件,可以使用键盘来增加或减少日期时间值。QDateTimeEdit通过setDisplayFormat()函数来设置显示的日期时间格式。

一、QDateTimeEdit中的常用方法

方法描述
setDisplayFormat()设置日期格式:yyyy(代表年份,用4位数表示)、MM(代表月份,取值范围为01 ~ 12)、dd(代表日,取值范围为01 ~ 31)、HH(代表小时,取值范围为00 ~ 23)、mm(代表分钟,取值范围为00 ~ 59)、ss(代表秒,取值范围为00 ~ 59)
setMinimumDate()设置控件的最小日期
setMaximumDate()设置控件的最大日期
time()返回编辑的时间
date()返回编辑的日期

二、QDateTimeEdit中的常用信号

信号含义
dateChanged当日期改变时发射此信号
dateTimeChanged当日期时间改变时发射此信号
timeChanged当时间改变时发射此信号

三、QDateTimeEdit

  1. QDateTimeEdit的子类:

QDateEditQTimeEdit类均继承自QDateTimeEdit类,它们的许多功能特性都由QDateTimeEdit提供。

注:QDateEdit用来编辑控件的日期,仅包括年、月、日;QTimeEdit用来编辑控件的时间,仅包括小时、分钟和秒。

dateEdit = QDateEdit(self)
timeEdit = QTimeEdit(self)
dateEdit.setDisplayFormat("yyyy-MM-dd")
timeEdit.setDisplayFormat("HH:mm:ss")

  1. 初始化QDateTimeEdit类:

在默认情况下,如果QDateTimeEdit类构造时不指定日期时间,那么系统会为其设置一个和本地相同的日期时间格式,并且值为2000年1月1日0时0分0秒,也可以手动指定控件显示的日期时间。除了通过构造函数指定所显示的日期时间外,也可以根据QDateTimeEdit提供的槽函数来设置,比如setDateTime()setDate()setTime()函数。

dateTimeEdit = QDateTimeEdit(self)
dateTimeEdit2 = QDateTimeEdit(QDateTime.currentDateTime(),self)
dateEdit = QDateTimeEdit(QDate.currentDate(),self)
timeEdit = QDateTimeEdit(QTime.currentTime(),self)

  1. 设置日期时间格式:
dateTimeEdit = QDateTimeEdit(self)
dateTimeEdit2 = QDateTimeEdit(QDateTime.currentDateTime(),self)
dateEdit = QDateTimeEdit(QDate.currentDate(),self)
timeEdit = QDateTimeEdit(QTime.currentTime(),self)

#设置格式
dateTimeEdit.setDisplayFormat("yyyy-MM-dd HH:mm:ss")
dateTimeEdit2.setDisplayFormat("yyyy/MM/dd HH-mm-ss")
dateEdit.setDisplayFormat("yyyy.MM.dd")
timeEdit.setDisplayFormat("HH:mm:ss")

四、QDateTimeEdit的使用

import sys,math
from PyQt5 import QtCore
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *

class Win(QWidget):
    def __init__(self):
        super().__init__()
        self.setGeometry(300, 300,400, 380)
        self.setWindowTitle('QDateTimeEdit的使用')

        layout = QVBoxLayout()
        self.dateEdit = QDateTimeEdit(QDateTime.currentDateTime(),self)
        self.dateEdit.setDisplayFormat("yyyy-MM-dd HH:mm:ss")#设置格式
        self.dateEdit.setMinimumDate(QDate.currentDate().addDays(-365))#设置最小日期
        self.dateEdit.setMaximumDate(QDate.currentDate().addDays(365))#设置最大日期
        self.dateEdit.setCalendarPopup(True)#弹出日历
        self.dateEdit.dateChanged.connect(self.onDateChanged)
        self.dateEdit.dateTimeChanged.connect(self.onDateTimeChanged)
        self.dateEdit.timeChanged.connect(self.onTimeChanged)

        self.btn = QPushButton('获取日期和时间')
        self.btn.clicked.connect(self.onButtonClick)

        layout.addWidget(self.dateEdit)
        layout.addWidget(self.btn)
        self.setLayout(layout)

    def onDateChanged(self,date):
        print(date)

    def onDateTimeChanged(self,dateTime):
        print(dateTime)

    def onTimeChanged(self,time):
        print(time)

    def onButtonClick(self):
        dateTime = self.dateEdit.dateTime()
        maxDate = self.dateEdit.maximumDate()
        maxDateTime = self.dateEdit.maximumDateTime()
        maxTime = self.dateEdit.maximumTime()

        minDate = self.dateEdit.minimumDate()
        minDateTime = self.dateEdit.minimumDateTime()
        minTime = self.dateEdit.minimumTime()

        print('\n选择日期时间')
        print('dateTime=%s' % str(dateTime))
        print('maxDate=%s' % str(maxDate))
        print('maxDateTime=%s' % str(maxDateTime))
        print('maxTime=%s' % str(maxTime))
        print('minDate=%s' % str(minDate))
        print('minDateTime=%s' % str(maxDateTime))
        print('minTime=%s' % str(maxTime))

if __name__ == "__main__":
    app = QApplication(sys.argv)
    form = Win()
    form.show()
    sys.exit(app.exec_())

运行效果如下:

在这里插入图片描述

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值