我想为PyQt.QtGui.QCalendarWidget
制作自定义单元格。我需要在一些日历单元格的底部添加一个简短的小文本,是否可能?如果是这样,有人能指出我正确的方向吗?
到目前为止,我们的想法是继承QCalendarWidget
并覆盖其paintCell
方法。但是我不知道该怎么做。我试着看看Qt和小部件的代码,但它非常复杂,我没有找到他们实际绘制单元格的地方。所以我很感激任何建议。
答案 0 :(得分:3)
你不需要重新实现绘画。只需调用默认实现并添加文本绘图:
class MyCalendar(QtGui.QCalendarWidget):
def __init__(self,parent=None):
QtGui.QCalendarWidget.__init__(self,parent)
def paintCell(self, painter, rect, date):
QtGui.QCalendarWidget.paintCell(self, painter, rect, date)
if date.day() % 5 == 0: # example condition based on date
painter.drawText(rect.bottomLeft(), "test")
您需要为窗口小部件设置适当的高度,以确保单元格中有足够的空间来显示文本。