zoukankan      html  css  js  c++  java
  • 日历控件QCalendarWidget

    样式:

     继承于 QWidget  

    import sys
    from PyQt5.QtWidgets import QApplication, QWidget,QPushButton,QLabel,QCalendarWidget
    from PyQt5.QtCore import Qt,QDate
    from PyQt5.QtGui import QTextCharFormat
    
    class Demo(QWidget):
        def __init__(self):
            super().__init__()
            self.resize(300,300)
            self.setWindowTitle('QFontDialog')
    
            self.label=QLabel('塘沽五中',self)
            self.label.move(100,10)
            self.btn=QPushButton('按钮',self)
            self.btn.move(50,250)
            self.btn.clicked.connect(self.AA)
    
            self.cw=QCalendarWidget(self)  #创建日历控件并显示
            #默认当前日期
    
            #setMinimumDate(QDate date)   设置最小日期
            #minimumDate() -> QDate   返回最小日期
    
            #setMaximumDate(QDate date)   设置最大日期
            #maximumDate() -> QDate     返回最大日期
    
            #setDateRange(QDate min, QDate max)   设置日期范围
    
            self.cw.setDateEditEnabled(True)  #是否允许键盘编辑日期
            #True  允许;False  不允许 ;默认:允许
            #isDateEditEnabled() -> bool   返回是否允许键盘编辑
    
            self.cw.setDateEditAcceptDelay(3000)  #键盘编辑的延迟时间
    
            self.cw.setNavigationBarVisible(True)  #导航栏是否可见--年和月是否可见
            #默认-true  可见
            #isNavigationBarVisible() -> bool  返回导航栏是否可见
    
            self.cw.setFirstDayOfWeek(Qt.Monday)  #设置一周的第一天
            #Qt.Sunday  周日
            #Qt.Monday   周一  默认
            #firstDayOfWeek() -> Qt.DayOfWeek   返回一周的第一天
    
            self.cw.setGridVisible(True)  #网格是否可见
            #默认 不可见
            #isGridVisible() -> bool   返回网格是否可见
    
            tcf=QTextCharFormat()
            #看 https://i.cnblogs.com/EditPosts.aspx?postid=10357263
            tcf.setFontPointSize(15)
            self.cw.setHeaderTextFormat(tcf)  #设置头部文本格式--水平头和垂直头都有效
            #headerTextFormat() -> QTextCharFormat   返回头部文本格式
    
            self.cw.setHorizontalHeaderFormat(QCalendarWidget.ShortDayNames)  #设置水平头格式
            #QCalendarWidget.LongDayNames   英文 Monday        中文 星期一
            #QCalendarWidget.ShortDayNames  英文  Mon        中文  周一
            #QCalendarWidget.SingleLetterDayNames   英文 M    中文 周
            #QCalendarWidget.NoHorizontalHeader    隐藏水平头
    
            self.cw.setVerticalHeaderFormat(QCalendarWidget.ISOWeekNumbers)  #设置垂直头格式
            #QCalendarWidget.ISOWeekNumbers     显示周数--默认
            #QCalendarWidget.NoVerticalHeader   隐藏垂直头
            #verticalHeaderFormat() -> QCalendarWidget.VerticalHeaderFormat    返回垂直头格式
    
            self.cw.setWeekdayTextFormat(Qt.Tuesday, tcf)  #指定星期n用指定的文本格式
            #参数1  星期几     Qt.Tuesday  星期二
            #参数2  QTextCharFormat格式
    
            self.cw.setDateTextFormat(QDate(2019,6,20), tcf)  #指定某一天用指定的格式
            #参数1 指定的某一日
            #参数2 QTextCharFormat格式
    
            self.cw.setSelectionMode(QCalendarWidget.SingleSelection)  #设置选择模式
            #QCalendarWidget.NoSelection  用户无法选择日期--setSelectedDate可以设置
            #QCalendarWidget.SingleSelection   可以选择单日期--默认
    
            self.cw.setSelectedDate(QDate(1968,1,4))  #设置选中日期
    
            #信号
            #self.cw.activated.connect(self.BB)  #只要用户按下Return或Enter键或双击日历小部件中的日期,就会发出此信号
            #会向槽函数传递一个QDate值--PyQt5.QtCore.QDate(1968, 1, 24)
    
            #self.cw.clicked.connect(self.BB)  #单击有效日期时才会发出信号
            # 会向槽函数传递一个QDate值--PyQt5.QtCore.QDate(1968, 1, 24)
    
            self.cw.currentPageChanged.connect(self.CC)  #当前显示的月份更改时会发出此信号。新的一年和一个月作为参数传递。
            #  返回值:两个int  年和月   1968 7
    
            self.cw.selectionChanged.connect(lambda :print('选择的日期更改了'))  #当前选择的日期更改时会发出此信号
    
        def BB(self,d):
            print(d)
        def CC(self,y,m):
            print(y,m)
        def AA(self):
            #s=self.cw.monthShown()  #返回当前显示的月份
            #  5
    
            #s=self.cw.yearShown()  #返回当前显示的年份
            #2009
    
            #s=self.cw.selectedDate() #返回当前选中的日期
            #PyQt5.QtCore.QDate(2019, 6, 17)
    
            #self.cw.showToday()  # 显示当前日期
            #self.cw.showSelectedDate()   #显示选中的日期
            #self.cw.showNextYear()  #显示下一年
            #self.cw.showPreviousYear()  #显示上一年
            #self.cw.showNextMonth()   #显示下一月
            #self.cw.showPreviousMonth()  #显示上一月
            self.cw.setCurrentPage(1996, 3)  #设置当前页
            #参数1 年份
            #参数2  月份
    
            pass
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        demo = Demo()
        demo.show()
        sys.exit(app.exec_())
  • 相关阅读:
    [Tips] kubeconfig合并
    某书补充题选做
    Card
    Ant Design Pro V5 使用 Cesium 地图开发包遇到加载widgets.css样式报错
    工作相关
    pc端谷歌浏览器长截图
    dao层与xml之间联系
    三周的大学生活,我到底是怎么过来的
    湖南大学推荐书《社会学大纲》阅读有感 其二
    湖南大学新生报到游记 其一
  • 原文地址:https://www.cnblogs.com/liming19680104/p/10361578.html
Copyright © 2011-2022 走看看