【pyqt5学习】——日历控件calendarWidget设置单元格格式(前景、背景)、日历控件属性编辑

本文档详细介绍了如何使用PyQt5中的QCalendarWidget,包括获取选中日期、修改特定日期格子属性、设置周几日期的样式以及响应日期点击事件。示例代码展示了如何改变周一和指定日期的字体颜色和背景色,并提供了日期格式化的实例。同时,文章还提供了日历控件的其他属性信息和信号处理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

0、导入库

1、返回日历选中的日期

2、更改日历控件周几(比如一个月属于周一的日期)的所有格子属性

 3、更改日历控件单个格子(指定日期)属性

 4、日历格子属性

5、信号——clicked()

6、成果展示



0、导入库

from PyQt5.QtCore import pyqtSignal,QThread,QTimer,Qt,QDate
from PyQt5.QtGui import QIcon,QBrush,QColor

1、返回日历选中的日期

self.seleteQDate = self.calendarWidget.selectedDate()
print(self.calendarWidget.selectedDate()) # PyQt5.QtCore.QDate(2022, 5, 12)
print(type(self.calendarWidget.selectedDate())) # <class 'PyQt5.QtCore.QDate'>

得到的是一个QDate类型

通过以下代码可以将日期格式化得到字符串类型日期

selectedDate = self.seleteQDate.toString('yyyy-MM-dd dddd')

 2022-05-12 星期四

2、更改日历控件周几(比如一个月属于周一的日期)的所有格子属性

		## 获取周一字体格式
		self.fontStyle_ = self.calendarWidget.weekdayTextFormat(Qt.Monday) # 周六日格式
		## 替换字体颜色
		self.fontStyle_.setForeground(QBrush(QColor("#0076ed")))
		self.fontStyle_.setBackground(QBrush(QColor("#ffffff")))
		## 给周六、日设置新的字体格式
		self.calendarWidget.setWeekdayTextFormat(Qt.Sunday,self.fontStyle_)
		self.calendarWidget.setWeekdayTextFormat(Qt.Saturday,self.fontStyle_)

1、通过weekdayTextFormat属性来获得周一日期的格式

2、然后再利用setForegroud来更改前景色

3、将格式通过setweekdayTextFormat来对指定的周几的几个日期进行设置

 3、更改日历控件单个格子(指定日期)属性

self.fontStyle1 = self.calendarWidget.weekdayTextFormat(Qt.Monday)
self.fontStyle1.setBackground(QBrush(QColor("#ffffff")))
self.calendarWidget.setDateTextFormat(QDate(2022,5,13),fontStyle1)

1、通过weekdayTextFormat属性来获得周一日期的格式

2、然后再利用setBackgroud来更改前景色

3、将格式通过setDateTextFormat来对指定的日期单元格进行属性设置

注:setDateTextFormat()有两个参数,日期是QDate格式,通过QDate(年,月,日)可以得到

 4、日历格子属性

 有这些属性

5、信号——clicked()

self.calendar.clicked.connect(self.showData)

def showData(self,date):

        print(date.toString("yyyy-MM-dd dddd")

注:这里的点击会自动传回点击选中的日期,所有槽函数showData可以接收一个参数

6、成果展示

 其它关于日历控件的说明可以参考:

QCalendarWidget - Qt for Pythonhttps://doc.qt.io/qtforpython/PySide6/QtWidgets/QCalendarWidget.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有情怀的机械男

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值