Вы можете убрать выделение выходных дней красным цветом, удалив код, который отвечает за изменение цвета текста в paintCell методе:
from __init__ import *
class CalendarWidget(QCalendarWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setGridVisible(False)
self.setVerticalHeaderFormat(QCalendarWidget.VerticalHeaderFormat.NoVerticalHeader)
self.setHorizontalHeaderFormat(QCalendarWidget.HorizontalHeaderFormat.NoHorizontalHeader)
self.setSelectedDate(QDate.currentDate())
self.setNavigationBarVisible(False)
def paintCell(self, painter, rect, date):
# Убираем блок с изменением цвета текста:
# if not date.month() == self.selectedDate().month():
# painter.save()
# painter.setPen(QPen(QColor.fromHsl(230, 12, 49)))
# painter.drawText(rect, int(Qt.AlignmentFlag.AlignCenter), str(date.day()))
# painter.restore()
# else:
# QCalendarWidget.paintCell(self, painter, rect, date)
# Оставляем только стандартную отрисовку ячейки:
QCalendarWidget.paintCell(self, painter, rect, date)
CalendarWidget.py