zoukankan      html  css  js  c++  java
  • PyQt5日历控件及相关操作

    1、日历控件QCalendarWidget控件
    import sys,math
    from PyQt5.QtWidgets import *
    from PyQt5.QtGui import *
    from PyQt5.QtCore import *
    class mycalendar(QWidget):
    def __init__(self):
    super(mycalendar,self).__init__()
    self.initUI()
    def initUI(self):
    self.cal=QCalendarWidget(self)
    self.cal.setMinimumDate(QDate(1988,1,1)) #设置日历的最大最小日期
    self.cal.setMaximumDate(QDate(2088,1,1))
    self.cal.clicked.connect(self.showdate)

    self.cal.setGridVisible(True) #设置日历为网格形式
    self.cal.move(20,20)
    self.setWindowTitle("日历演示")
    self.label = QLabel(self)
    date = self.cal.selectedDate()
    #self.label.setText("显示选择日期")
    self.label.setText(date.toString("yyyy-MM-dd dddd"))
    self.label.move(20, 320)
    self.resize(400,400)

    def showdate(self,date):
    self.label.setText(date.toString("yyyy-MM-dd dddd"))


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

    2、不同显示风格的日历
    import sys, math
    from PyQt5.QtWidgets import *
    from PyQt5.QtGui import *
    from PyQt5.QtCore import *

    class DatetimeEdit(QWidget):
    def __init__(self):
    super(DatetimeEdit, self).__init__()
    self.initUI()

    def initUI(self):
    vlayout=QVBoxLayout()
    datetimeEdit1=QDateTimeEdit()
    datetimeEdit2 = QDateTimeEdit(QDateTime.currentDateTime())

    dateedit=QDateTimeEdit(QDate.currentDate())
    timeedit=QDateTimeEdit(QTime.currentTime())

    datetimeEdit1.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")

    vlayout.addWidget(datetimeEdit1)
    vlayout.addWidget(datetimeEdit2)
    vlayout.addWidget(dateedit)
    vlayout.addWidget(timeedit)

    self.setLayout(vlayout)
    self.resize(300, 90)
    self.setWindowTitle("设置不同风格的日期")



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

    3、日历控件QDateEdit控件,日历的高级操作
    import sys, math
    from PyQt5.QtWidgets import *
    from PyQt5.QtGui import *
    from PyQt5.QtCore import *

    class DatetimeEdit(QWidget):
    def __init__(self):
    super(DatetimeEdit, self).__init__()
    self.initUI()

    def initUI(self):
    vlayout=QVBoxLayout()
    datetimeEdit1=QDateTimeEdit()
    datetimeEdit2 = QDateTimeEdit(QDateTime.currentDateTime()) #获取当前的日期和时间
    datetimeEdit1.setMinimumDate(QDate.currentDate().addDays(-365))
    datetimeEdit1.setMaximumDate(QDate.currentDate().addDays(365))
    self.datetimeedit=datetimeEdit1
    datetimeEdit2.setCalendarPopup(True) #将文本的日历显示格式转换为下拉式表格显示

    dateedit=QDateTimeEdit(QDate.currentDate())
    timeedit=QDateTimeEdit(QTime.currentTime())

    datetimeEdit1.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")

    datetimeEdit1.dateChanged.connect(self.ondatechanged)
    datetimeEdit1.timeChanged.connect(self.ontimechanged)
    datetimeEdit1.dateTimeChanged.connect(self.ondatetimechanged)

    vlayout.addWidget(datetimeEdit1)
    vlayout.addWidget(datetimeEdit2)
    vlayout.addWidget(dateedit)
    vlayout.addWidget(timeedit)

    self.button=QPushButton("获取日期和时间")
    self.button.clicked.connect(self.onButtonClick)
    vlayout.addWidget(self.button)

    self.setLayout(vlayout)
    self.resize(300, 90)
    self.setWindowTitle("设置不同风格的日期")

    #日期变化
    def ondatechanged(self,date):
    print(date)
    #时间变化
    def ontimechanged(self,time):
    print(time)
    #日期和时间变化
    def ondatetimechanged(self,datetime):
    print(datetime)
    def onButtonClick(self):
    datetime=self.datetimeedit.dateTime()
    print(datetime)

    #最大日期
    print(self.datetimeedit.maximumDate())
    #最大时间和日期
    print(self.datetimeedit.maximumDateTime())
    #最小日期
    print(self.datetimeedit.minimumDate())
    print(self.datetimeedit.minimumDateTime())

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

    
    
  • 相关阅读:
    java 在线网络考试系统源码 springboot mybaits vue.js 前后分离跨域
    springboot 整合flowable 项目源码 mybiats vue.js 前后分离 跨域
    flowable Springboot vue.js 前后分离 跨域 有代码生成器 工作流
    Flowable 工作流 Springboot vue.js 前后分离 跨域 有代码生成器
    java 企业 网站源码 后台 springmvc SSM 前台 静态化 代码生成器
    java 进销存 商户管理 系统 管理 库存管理 销售报表springmvc SSM项目
    基于FPGA的电子计算器设计(中)
    基于FPGA的电子计算器设计(上)
    FPGA零基础学习:SPI 协议驱动设计
    Signal tap 逻辑分析仪使用教程
  • 原文地址:https://www.cnblogs.com/Yanjy-OnlyOne/p/12293865.html
Copyright © 2011-2022 走看看