Je suis confronté à un problème consistant à colorer une date précise de mon QCalenderWidget. J'ai en effet déjè posté ce meme problème auparavent, mais je n'ai pu obtenir d'aide suffissante pour débloquer le problème. J'ai progressé dans mon code, mais ca ne va pas toujours.
Je recois les messages d'erreur suivants:
Error : no matching function for call to 'MyCalender::paintCell(QPainter*&, <unresolved overloaded function type>, const QDate&)'
Candidates are: virtual void MyCalender::paintCell(QPainter*, const QRect&, const QDate&)
J'ai réimplémenté la méthode paintCell.
Merci d'avance.
Voici mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 class MyCalender: public QCalendarWidget { public: MyCalender(QWidget *parent); ~MyCalender(); protected: virtual void paintCell(QPainter *painter, const QRect &rect, const QDate &date); }; MyCalender::MyCalender(QWidget *parent): QCalendarWidget(parent) { } void MyCalender::paintCell(QPainter *painter, const QRect &rect, const QDate &date) { if(date.dayOfWeek() == Qt::Monday) { painter->save(); painter->fillRect(rect, Qt::green); painter->drawRect(rect); painter->drawText(rect, Qt::AlignCenter, QString::number(date.day())); painter->restore(); } else { QCalendarWidget::paintCell(painter, rect, date); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 class MyWindow: public QDialog { Q_OBJECT public: MyWindow(QWidget *parent = 0); ~MyWindow(); QString getFileName(); public slots: void colorADate(const QDate &date); private: MyCalender *m_calendrier; }; void MyWindow::colorADate(const QDate &date) { QPainter *painter = new QPainter; QRect rect(10,10,10,10); m_calendrier->paintCell(painter, rect, date); }
Partager