Hi -
Google "QCalendarWidget paintcell" =>
Highlight today's date in a QCalendarWidget
newcalendarwidget.h
Code:
#ifndef NEWCALENDARWIDGET_H
#define NEWCALENDARWIDGET_H
#include <qcalendarwidget>
#include <qcolor>
#include <qdate>
#include <qpen>
#include <qbrush>
class NewCalendarWidget : public QCalendarWidget
{
Q_OBJECT
Q_PROPERTY(QColor color READ getColor WRITE setColor)
public:
NewCalendarWidget(QWidget *parent = 0);
~NewCalendarWidget();
void setColor(QColor& color);
QColor getColor();
protected:
virtual void paintCell(QPainter *painter, const QRect &rect, const QDate &date) const;
private:
QDate m_currentDate;
QPen m_outlinePen;
QBrush m_transparentBrush;
};
#endif // NEWCALENDARWIDGET_H
newcalendarwidget.cpp:
Code:
#include <qpainter>
#include "newcalendarwidget.h"
NewCalendarWidget::NewCalendarWidget(QWidget *parent)
: QCalendarWidget(parent)
{
m_currentDate = QDate::currentDate();
m_outlinePen.setColor(Qt::red);
m_transparentBrush.setColor(Qt::transparent);
}
NewCalendarWidget::~NewCalendarWidget()
{
}
void NewCalendarWidget::setColor(QColor& color)
{
m_outlinePen.setColor(color);
}
QColor NewCalendarWidget::getColor()
{
return (m_outlinePen.color());
}
void NewCalendarWidget::paintCell(QPainter *painter, const QRect &rect, const QDate &date) const
{
QCalendarWidget::paintCell(painter, rect, date);
if (date == m_currentDate)
{
painter->setPen(m_outlinePen);
painter->setBrush(m_transparentBrush);
painter->drawRect(rect.adjusted(0, 0, -1, -1));
}
}