this is what worked for me
class CalendarWidget(QtWidgets.QCalendarWidget):
def __init__(self, parent=None):
super(CalendarWidget, self).__init__(parent,
verticalHeaderFormat=QtWidgets.QCalendarWidget.NoVerticalHeader,
gridVisible=False)
self.setObjectName("patient_visit_date_calendar_widget")
prev_button = self.findChild(QtWidgets.QToolButton, "qt_calendar_prevmonth")
next_button = self.findChild(QtWidgets.QToolButton, "qt_calendar_nextmonth")
# Create QIcon instances for your icons
prev_icon = QIcon(":resources/icons/arrow_back.svg")
next_icon = QIcon(":resources/icons/arrow_forward.svg")
# Set the icons to the buttons
prev_button.setIcon(prev_icon)
next_button.setIcon(next_icon)
for btn in (prev_button, next_button):
btn.setIconSize(QtCore.QSize(15, 15))
for d in (QtCore.Qt.Saturday, QtCore.Qt.Sunday,):
fmt = self.weekdayTextFormat(d)
fmt.setForeground(QtCore.Qt.darkGray)
self.setWeekdayTextFormat(d, fmt)
self.setStyleSheet(QSS)
def paintCell(self, painter, rect, date):
if date == self.selectedDate():
painter.save()
painter.fillRect(rect, QtGui.QColor("white"))
painter.setPen(QtCore.Qt.NoPen)
painter.setBrush(QtGui.QColor(10, 186, 181, 100))
r = QtCore.QRect(QtCore.QPoint(), min(rect.width(), rect.height())*QtCore.QSize(1, 1))
r.moveCenter(rect.center())
painter.drawEllipse(r)
painter.setPen(QtGui.QPen(QtGui.QColor("white")))
painter.drawText(rect, QtCore.Qt.AlignCenter, str(date.day()))
painter.restore()
else:
super(CalendarWidget, self).paintCell(painter, rect, date)