Skip to content
Snippets Groups Projects
Commit 48283eac authored by Garrett Bates's avatar Garrett Bates
Browse files

Added subclass of QCalendarWidget with better support for DOY formats

parent 14ddde33
No related branches found
No related tags found
1 merge request!3Main UI and miscellaneous associated widgets
from PySide2 import QtCore, QtGui, QtWidgets
class CalendarWidget(QtWidgets.QCalendarWidget):
def __init__(self, parent):
super().__init__(parent)
self.setupUi()
self._showDayOfYear = getattr(self, 'toggleDayOfYear', None) == None
def setupUi(self):
self.setMinimumWidth(300)
self.setMinimumHeight(275)
navbar = self.findChild(QtWidgets.QWidget, 'qt_calendar_navigationbar')
if navbar:
# self.toggleDayOfYear = QtWidgets.QPushButton('Show DOY', navbar)
# self.toggleDayOfYear = QtWidgets.QCheckBox('Show DOY', navbar)
self.toggleDayOfYear = QtWidgets.QCheckBox('Show DOY')
# navbar.layout().addWidget(self.toggleDayOfYear)
navbar.layout().insertWidget(1, self.toggleDayOfYear)
self.toggleDayOfYear.toggled.connect(self.setShowDayOfYear)
self.toggleDayOfYear.setCheckable(True)
palette = self.toggleDayOfYear.palette()
palette.setColor(QtGui.QPalette.WindowText, QtGui.QColor('white'))
self.toggleDayOfYear.setPalette(palette)
self.toggleDayOfYear.show()
def showDayOfYear(self):
return self._showDayOfYear
@QtCore.Slot(bool)
def setShowDayOfYear(self, value):
self._showDayOfYear = value
self.updateCells()
def paintCell(self, painter, rect, date):
super().paintCell(painter, rect, date)
painter.save()
if self.showDayOfYear():
color = QtGui.QColor('red')
font = painter.font()
font.setPointSize(font.pointSize() * 0.9)
painter.setFont(font)
painter.setPen(color)
painter.drawText(rect.bottomLeft(), str(date.dayOfYear()))
painter.restore()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment