8.6 QCalendarWidget日期日历选择对话框

一、QCalendarWidget日期日历选择对话框

1.基本概念

  • QCalendarWidget日期日历选择对话框使用起来比较简单

2.代码

点击查看代码
from PyQt5.Qt import *
import sys


class Window(QWidget) :
    def __init__(self) :
        super().__init__()
        self.setWindowTitle("QCalendarWidget日期日历控件 - PyQt5中文网")
        self.resize(600, 500)
        self.func_list()

    def func_list(self) :
        self.func()

    def func(self) :
        ##1.构造函数
        qcw = QCalendarWidget(self)
        ##2.日期范围
        # qcw.setMaximumDate(QDate(2020, 12, 31))
        # qcw.setMinimumDate(QDate(1990, 1, 1))
        qcw.setDateRange(QDate(1990, 1, 1), QDate(2022, 12, 31)) #当前日期为后面这个日期

        ##3.日期编辑
        qcw.setDateEditEnabled(True)

        ##4. 日期获取
        print(qcw.monthShown())
        print(qcw.yearShown())
        print(qcw.selectedDate())

        ##5. 外观控制
        #qcw.setNavigationBarVisible(False)  # 头部栏隐藏
        #qcw.setFirstDayOfWeek(Qt.Sunday)  # 控制一周的第一天
        #qcw.setGridVisible(True)  # 日期网格显示
        #
        ##6.文本格式控制
        tcf = QTextCharFormat()
        # # tcf.setFontFamily('宋体')
        tcf.setFont(QFont('宋体', 20, 50))
        qcw.setHeaderTextFormat(tcf)

        '''
        7.格式
        # # QCalendarWidget.SingleLetterDayNames  # 周
        # # QCalendarWidget.ShortDayNames  # 周一
        # # QCalendarWidget.LongDayNames  # 星期一
        # # QCalendarWidget.NoHorizontalHeader  # 标题隐藏
        # # QCalendarWidget.ISOWeekNumbers  # 显示周数
        # # QCalendarWidget.NoVerticalHeader  # 隐藏标题
        '''

        #qcw.setHorizontalHeaderFormat(QCalendarWidget.LongDayNames)  # 水平显示设置
        qcw.setVerticalHeaderFormat(QCalendarWidget.NoVerticalHeader)  # 垂直显示设置

        # 8.特定星期文本字符格式
        # qcw.setWeekdayTextFormat(Qt.Monday, tcf)

        # 9.特定日期文本字符格式
        # qcw.setDateTextFormat(QDate(2020, 12, 30), tcf)


        ## 10.选中功能
        # qcw.setSelectionMode(QCalendarWidget.NoSelection)  # 日期无法选择
        # qcw.setSelectionMode(QCalendarWidget.SingleSelection)  # 可以选择单个日期
        qcw.setSelectedDate(QDate(2020, 12, 1))  # 一般用于给用户展示某个日期()当前日期

        ## 11.常用方法
        # qcw.showToday()  # 只展示当天所在页面,不选中
        # qcw.showSelectedDate()
        # qcw.showNextMonth()
        # qcw.showNextYear()
        # qcw.showPreviousYear()  # 前一年
        # qcw.showPreviousMonth()
        qcw.setCurrentPage(2020, 11)  # 设置当前页面是哪一年那一月

        ## 12.可用信号
        # qcw.activated()  # 双击触发
        # qcw.clicked()  # 点击触发
        # qcw.currentPageChanged()  # 当前月份改变
        # qcw.selectionChanged()  # 当前选择的日期发生改变


if __name__ == '__main__' :
    app = QApplication(sys.argv)
    window = Window()

    window.show()
    sys.exit(app.exec_())

## 3.效果 ![](https://img2022.cnblogs.com/blog/2520904/202204/2520904-20220413170058714-658221027.png)
posted @   Trouvaille_fighting  阅读(422)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示

目录导航