zoukankan      html  css  js  c++  java
  • PyQt5Day25--输入控件QClendarWidget(日期控件)

    一、QCalendarWidget简介

      提供一个基于每月日历控件,允许用户选择一个日期。

    二、QCalendarWidget功能作用

    1、日期范围

    (1)框架

    (2)操作及展示

    1 # 日期范围
    2 # cw.setMinimumDate(QDate(1990,1,1)) # 最小日期
    3 # cw.setMaximumDate(QDate(2050,12,31)) # 最大日期
    4 cw.setDateRange(QDate(1990, 1, 1), QDate(2050, 12, 31))  # 范围
    5 cw.setSelectedDate(QDate(2022, 1, 1))  # 设置当前显示日期

    2、日期编辑

    (1)框架

    (2)操作及展示

    1 # 日期编辑
    2 # cw.setDateEditEnabled(False) # 关闭日期编辑状态
    3 cw.setDateEditAcceptDelay(3000)  # 设置编辑后的延迟时间

    3、日期获取

    (1)框架

    (2)操作及展示

    1 # 日期的获取
    2 btn = QPushButton(self)
    3 btn.setText("测试按钮")
    4 btn.move(400, 100)
    5 btn.clicked.connect(lambda: print(cw.monthShown()))  # 展示月份
    6 btn.clicked.connect(lambda: print(cw.yearShown()))  # 展示年份
    7 btn.clicked.connect(lambda: print(cw.selectedDate()))  # 展示年份

    4、格式外观

    (1)框架

    (2)操作及展示

     1 # 格式外观
     2 cw.setNavigationBarVisible(False)  # 设置导航条不可见
     3 cw.setFirstDayOfWeek(Qt.Sunday)  # 设置一周的第一天为周日
     4 cw.setGridVisible(True)  # 设置网格可见
     5 
     6 tcf = QTextCharFormat()
     7 tcf.setFontFamily("隶书")
     8 tcf.setFontPointSize(8)
     9 tcf.setFontUnderline(True)
    10 cw.setHeaderTextFormat(tcf)  # 设置日历水平头和垂直头格式文本
    11 
    12 # cw.setHorizontalHeaderFormat(QCalendarWidget.LongDayNames) # 设置水平头的样式(星期几)
    13 # cw.setHorizontalHeaderFormat(QCalendarWidget.NoHorizontalHeader) # 隐藏水平头
    14 
    15 cw.setVerticalHeaderFormat(QCalendarWidget.NoVerticalHeader)  # 隐藏垂直头
    16 
    17 t_tcf = QTextCharFormat()
    18 t_tcf.setFontPointSize(20)
    19 t_tcf.setToolTip("这是星期二")
    20 cw.setWeekdayTextFormat(Qt.Tuesday, t_tcf)  # 设置某一星期几的一列格式
    21 cw.setDateTextFormat(QDate(2020, 5, 3), t_tcf)  # 设置某一天的格式

    5、选中

    (1)框架

    (2)操作及展示

    1 # 选中
    2 cw.setSelectionMode(QCalendarWidget.NoSelection) # 不能选择日期
    3 cw.setSelectedDate(QDate(2019,12,12)) # 选择具体的日期

    6、常用的方法

    (1)框架

    (2)操作及展示

     1 # 常用的方法
     2 btn = QPushButton(self)
     3 btn.setText("测试按钮")
     4 btn.move(400, 100)
     5 
     6 # btn.clicked.connect(cw.showToday) # 跳转展示这一天对应的那一页(月)
     7 # btn.clicked.connect(cw.selectedDate) # 跳转到选中的那一天
     8 # btn.clicked.connect(cw.showNextYear) # 展示下一年
     9 # btn.clicked.connect(cw.showNextMonth) # 展示下一个月
    10 btn.clicked.connect(lambda: cw.setCurrentPage(2008, 8))  # 展示某一年某一月页面

    7、信号

    (1)框架

    (2)操作及展示

    1 # 信号
    2 # cw.activated.connect(lambda date:print(date))
    3 # cw.clicked.connect(lambda date:print(date))
    4 # cw.currentPageChanged.connect(lambda y,m:print(y,m))
    5 cw.selectionChanged.connect(lambda: print("选中的日期发生改变", cw.selectedDate()))
  • 相关阅读:
    Linux下修改Mysql的用户(root)的密码
    Mysql 用户权限管理
    mysql的四种启动方式
    MySQL慢日志的相关参数
    mysqlsla slow-query常用用法

    导包和模块注意的问题
    Python面向对象之魔法方法/双下方法
    __new__问题
    转:Python常见字符编码及其之间的转换
  • 原文地址:https://www.cnblogs.com/fengxb1213/p/12821071.html
Copyright © 2011-2022 走看看