0

我想为PyQt.QtGui.QCalendarWidget. 我需要在一些日历单元格的底部添加一个简短的小文本,可以吗?如果是这样,有人能指出我正确的方向吗?

到目前为止,想法是继承QCalendarWidget并覆盖它的paintCell方法。但是我不知道在那里做什么。我试图查看 Qt 和小部件的代码,但它非常复杂,我没有找到他们实际绘制单元格的地方。所以我会很感激任何建议。

4

1 回答 1

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")

您需要为小部件设置适当的高度,以确保单元格中有足够的空间来显示文本。

于 2013-09-29T23:31:32.287 回答