|
自定义下QCalendarWidget实现paintCell函数
#include "calendar.h"
#include <QDebug>
#include <QPainter>
#include <QCursor>
Calendar::Calendar(QWidget *parent)
: QCalendarWidget(parent)
{
setMouseTracking(true);
startTimer(200);
}
void Calendar::paintCell(QPainter *painter, const QRect &rect, const QDate &date) const
{
if (!isVisible()) {
return ;
}
if (rect.contains(mapFromGlobal(QCursor::pos())))
{
painter->save();
painter->drawText(rect, Qt::TextSingleLine | Qt::AlignCenter, QString::number(date.day()));
painter->restore();
} else {
QCalendarWidget::paintCell(painter, rect, date);
}
}
void Calendar::timerEvent(QTimerEvent *event)
{
if (isVisible()) {
qDebug() << "isvisible";
update();
}
}
|
|