{
Q_OBJECT
public:
~EventCalendarWidget() {}
_events.insert(date, event);
update(); //this doesn't always work
}
protected:
if (_events.contains(date)) {
QList<QString> events = _events.values(date);
painter->save();
r.adjust(0, br.height(), 0, 0);
painter->drawText(r, Qt::TextSingleLine, event, &br);
}
painter->restore();
} else {
}
}
private:
QMultiMap<QDate, QString> _events;
};
class EventCalendarWidget : public QCalendarWidget
{
Q_OBJECT
public:
EventCalendarWidget(QWidget *parent = 0) : QCalendarWidget(parent) {}
~EventCalendarWidget() {}
void addEvent(QDate date, QString event) {
_events.insert(date, event);
update(); //this doesn't always work
}
protected:
void paintCell(QPainter *painter, const QRect &rect, const QDate &date) const {
if (_events.contains(date)) {
QList<QString> events = _events.values(date);
QRect r = rect;
QRect br;
painter->save();
foreach(QString event, events) {
r.adjust(0, br.height(), 0, 0);
painter->drawText(r, Qt::TextSingleLine, event, &br);
}
painter->restore();
} else {
QCalendarWidget::paintCell(painter, rect, date);
}
}
private:
QMultiMap<QDate, QString> _events;
};
To copy to clipboard, switch view to plain text mode
Bookmarks