6#include "analogclock.h"
11AnalogClock::AnalogClock(QWidget *parent)
17 QTimer *timer =
new QTimer(
this);
19 connect(timer, &QTimer::timeout,
this, QOverload<>::of(&AnalogClock::update));
24 setWindowTitle(tr(
"Analog Clock"));
32void AnalogClock::paintEvent(QPaintEvent *)
34 static const QPoint hourHand[3] = {
39 static const QPoint minuteHand[3] = {
45 QColor hourColor(127, 0, 127);
46 QColor minuteColor(0, 127, 127, 191);
48 int side = qMin(width(), height());
49 QTime time = QTime::currentTime();
51 QPainter painter(
this);
52 painter.setRenderHint(QPainter::Antialiasing);
53 painter.translate(width() / 2, height() / 2);
54 painter.scale(side / 200.0, side / 200.0);
56 painter.setPen(Qt::NoPen);
57 painter.setBrush(hourColor);
60 painter.rotate(30.0 * ((time.hour() + time.minute() / 60.0)));
61 painter.drawConvexPolygon(hourHand, 3);
64 painter.setPen(hourColor);
66 for (
int i = 0; i < 12; ++i) {
67 painter.drawLine(88, 0, 96, 0);
71 painter.setPen(Qt::NoPen);
72 painter.setBrush(minuteColor);
75 painter.rotate(6.0 * (time.minute() + time.second() / 60.0));
76 painter.drawConvexPolygon(minuteHand, 3);
79 painter.setPen(minuteColor);
81 for (
int j = 0; j < 60; ++j) {
83 painter.drawLine(92, 0, 96, 0);