• 日期与时间控件QDate, QTime, QDateTime


    继承于     QAbstractSpinBox   

    日期格式符:

    d          没有前导零的数字的日期(1到31)

    ddd      缩写的本地化日期名称(例如'Mon'到'Sun'
    dddd    完整本地化的日期名称(例如“星期一”到“星期日”)
    M         没有前导零的数字的月份(1-12)
    MM      月份为前导零的数字(01-12)
    MMM   缩写的本地化月份名称(例如'Jan'到'Dec')
    MMMM   完整的本地化月份名称(例如“1月”到“12月”)
    yy     年份为两位数字(00-99)
    yyyy    年份为四位数字

    时间格式符:

    h         没有前导零的小时(如果显示AM / PM,则为0到23或1到12)
    hh       前导零的小时(如果AM / PM显示,则为00到23或01到12)
    H        没有前导零的小时(0到23,即使有AM / PM显示)
    HH     前导零的小时(00到23,即使有AM / PM显示)
    m        没有前导零的分钟(0到59)
    mm      前导零(00到59)的分钟
    s           整个秒没有前导零(0到59)
    ss        带有前导零(00到59)
    z         第二个小数部分, 没有尾随零的毫秒(0到999)
    zzz       第二个小数部分, 有尾随零的毫秒(000到999)
    AP / A      使用AM / PM显示                AM--上午    PM--下午
    ap / a       使用am / pm显示
    t             时区

    QDateTimeEdit:

    import sys
    from PyQt5.QtWidgets import QApplication, QWidget,QDateTimeEdit,QPushButton
    from PyQt5.QtCore import QDateTime,QDate,QTime
    
    class Demo(QWidget):
        def __init__(self):
            super().__init__()
            self.resize(300,300)
            def A():
                s=t.elapsed()  #返回从start()或restart()开始计时到这条语句的毫秒数
    
                #section操作
                s = dte1.sectionCount()  # 获取section个数--就是日期时间格式个数
                s=dte1.currentSectionIndex()   #返回当前Section的序号
                dte1.setFocus()  #注意:获取焦点指令会把section的序号返回0
                #dte1.setCurrentSectionIndex(3)  #设置当前操作的日期时间section--根据序号
    
                dte1.setCurrentSection(QDateTimeEdit.SecondSection)  #设置当前操作的日期时间section--根据指定的section
                #QDateTimeEdit.YearSection   年部分
                #QDateTimeEdit.MonthSection  月部分
                #QDateTimeEdit.DaySection    日部分
                #QDateTimeEdit.HourSection   小时部分
                #QDateTimeEdit.MinuteSection   分部分
                #QDateTimeEdit.SecondSection  秒部分
                #QDateTimeEdit.MSecSection    毫秒部分
                #QDateTimeEdit.AmPmSection
                #QDateTimeEdit.NoSection    没有
    
                s=dte1.sectionText(QDateTimeEdit.HourSection)  #返回指定section的文本
                print(s)
    
            def B():
                dte1.setCalendarPopup(True)  #是否弹出日历控件
                #True 按钮变成下拉按钮,点击下拉按钮弹出日历控件
                #calendarPopup()   返回是否弹出日历控件
    
                s=dte1.dateTime() #获取QDateTime
                s=dte1.date()   #获取QDate
                s=dte1.time()  #获取QTime
    
            btn=QPushButton('按钮',self)
            btn.move(80,250)
            btn.clicked.connect(A)
            btn1 = QPushButton('按钮1', self)
            btn1.move(160, 250)
            btn1.clicked.connect(B)
            dte=QDateTimeEdit(self)  #实例化一个日期时间控件
            dte.move(100,20)
            dt=QDateTime(1968,1,4,7,38,4)  #创建日期时间对象;1968年1月4日7点38分4秒
            dte1 = QDateTimeEdit(dt,self)  # 实例化一个日期时间控件--自定义日期时间
            #参数1  可以是QDateTime,QDate,QTime
            dte1.move(100,70)
            dte2 = QDateTimeEdit(QDate.currentDate(), self)  # 实例化一个日期控件--没有时间
            dte2.move(100, 120)
            dte2 = QDateTimeEdit(QTime.currentTime(), self)  # 实例化一个时间控件--没有日期
            dte2.move(100, 170)
    
            #QDateTime类
            dt=QDateTime.currentDateTime()   #获取系统当前日期时间
            #QDateTime(2019, 6, 6, 10, 37, 26, 884)
            dt1=dt.addYears(2)  #在dt基础上增加2年后赋值给dt1,dt不变
            dt1=dt.addMonths(2)  #在dt基础上增加2月后赋值给dt1,dt不变
            dt1=dt.addSecs(2)  #在dt基础上增加2秒后赋值给dt1,dt不变
            dt1 = dt.addMSecs(2)  #在dt基础上增加2毫秒后赋值给dt1,dt不变
            dt1 = dt.addDays(2)  # 在dt基础上增加2日后赋值给dt1,dt不变
            s=dt.offsetFromUtc()  #返回与国际标准时间的差,秒
    
            #dte1.setDisplayFormat('yy-MM-dd mm:ss:zzz')  #设置显示格式
            #displayFormat() -> str   返回格式符
    
            #日期时间范围:
            dte1.setMaximumDateTime(QDateTime(2020, 2, 10, 1, 5, 5))  # 设置最大日期时间
            # 默认 9999年12月31日 23:59:59 999毫秒
            #maximumDateTime() -> QDateTime   返回最大日期时间
            #clearMaximumDateTime()  清除自定义的最大日期时间,恢复默认值
            #setMinimumDateTime(QDateTime)   设置最小日期时间
            #minimumDateTime() -> QDateTime   返回最小日期时间
            #clearMinimumDateTime()   清除自定义的最小日期时间,恢复默认值
            #dte1.setDateTime()  #设置日期时间范围范围
    
            #日期范围:
            #setMaximumDate(QDate)  设置最大日期,默认包含9999年12月31日
            #maximumDate() -> QDate  获取最大日期
            #clearMaximumDate()  清除自定义最大日期, 恢复默认
            #setMinimumDate(QDate)  设置最小日期,默认1752年9月14日
            #minimumDate() -> QDate  获取最小日期
            #clearMinimumDate()   清除自定义最小日期, 恢复默认
            #setDateRange(min_date, max_date)  日期范围
    
            #时间范围:
            #setMaximumTime(QTime)   设置最大时间
            #maximumTime() -> QTime    返回最大时间
            #clearMaximumTime()      清除自定义时间
            #setMinimumTime(QTime)   设置最小时间
            #minimumTime() -> QTime    返回最小时间
            #clearMinimumTime()     清除最小时间
            #setTimeRange(min_time, max_time)   设置范围
    
            #QDateEdit   日期控件款
            #QTimeEdit   时间控件框
    
            #QTime类
            t1=QTime(8,20)  #实例化时间对象-8点20分
            t=QTime.currentTime()  #获取系统当前时间
            t.start()  #开始计时
            #restart()  重新开始计时
    
            t1=t.addSecs(5)  #在t基础上增加5秒后赋值给t1,t不变
            t1=t1.addMSecs(5)  #在t基础上增加5毫秒后赋值给t1,t不变
            t1=t.hour()  #获取hour
            t1=t.minute()  #获取minute
            t1=t.second()  #获取second
            t1=t.msec()  #获取毫秒
    
    
            #QDate类
            d=QDate(1968,1,4)
            d.setDate(1996, 3, 18)  #设置日期
            d = QDate.currentDate()  # 获取当前日期
            print(d)
            s=d.addYears(2)  #增加2年,d不变
            s=d.addMonths(2)  #增加2月,d不变
            s=d.addDays(2)  #增加2日,d不变
            s=d.day()  #获取日
            s=d.month()  #获取月
            s=d.year() #获取年
            s=d.dayOfWeek()  #获取星期几
            s=d.dayOfYear()  #这一年 第几日
            s=d.daysInMonth()  #这一月总共多少天
            s=d.daysInYear()  #这一年总共多少天
            s=d.daysTo(QDate(2019,5,4))  #计算时间差  单位:日
            #参数中的日期减去d
            print(s)
    
            #信号
            dte1.dateTimeChanged.connect(lambda x:print('日期时间改变了',x))  #日期时间发生改变时发出信号
            #把改变后的QDateTime传给槽函数
            #dateChanged(QDate date)    日期改变时发出信号
            #timeChanged(QTime time)    时间改变时发出信号
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        demo = Demo()
        demo.show()
        sys.exit(app.exec_())

    天子骄龙 

  • 相关阅读:
    python functools.lru_cache做备忘功能
    python clock装饰器 计算函数执行时间,执行结果及传入的参数
    python 闭包计算移动均值及nonlocal的使用
    使用 memoryview 和 struct 查看一个 GIF 图像的首部
    寻医问药 爬虫
    defaultdict使用及__missing__理解
    字典推导式
    collections deque队列及其他队列
    bisect 二分查找
    python array 使用创建10万浮点数
  • 原文地址:https://www.cnblogs.com/liming19680104/p/10362942.html
Copyright © 2020-2023  润新知