• 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_())

    
    
  • 相关阅读:
    Data Structure 之 KMC字符串匹配算法
    网站建站流程
    常用算法稳定性分析
    VSS错误:The Sourcesafe Web service cannot be accessed at the specified address
    Data Struture 之 指针
    Windows 之 CMD命令
    Data Structure 之 算法设计策略
    Data Structure 之 最优二叉树
    板级支持包(BSP)
    JPEG
  • 原文地址:https://www.cnblogs.com/Yanjy-OnlyOne/p/12293865.html
Copyright © 2020-2023  润新知