diff options
Diffstat (limited to 'examples/widgets/widgets/analogclock/analogclock.cpp')
-rw-r--r-- | examples/widgets/widgets/analogclock/analogclock.cpp | 74 |
1 files changed, 48 insertions, 26 deletions
diff --git a/examples/widgets/widgets/analogclock/analogclock.cpp b/examples/widgets/widgets/analogclock/analogclock.cpp index ad94a16bab..feb7f4e8b5 100644 --- a/examples/widgets/widgets/analogclock/analogclock.cpp +++ b/examples/widgets/widgets/analogclock/analogclock.cpp @@ -31,19 +31,29 @@ AnalogClock::AnalogClock(QWidget *parent) void AnalogClock::paintEvent(QPaintEvent *) //! [8] //! [10] { - static const QPoint hourHand[3] = { - QPoint(7, 8), - QPoint(-7, 8), - QPoint(0, -40) + static const QPoint hourHand[4] = { + QPoint(5, 14), + QPoint(-5, 14), + QPoint(-4, -71), + QPoint(4, -71) }; - static const QPoint minuteHand[3] = { - QPoint(7, 8), - QPoint(-7, 8), - QPoint(0, -70) + static const QPoint minuteHand[4] = { + QPoint(4, 14), + QPoint(-4, 14), + QPoint(-3, -89), + QPoint(3, -89) }; - QColor hourColor(127, 0, 127); - QColor minuteColor(0, 127, 127, 191); + static const QPoint secondsHand[4] = { + QPoint(1, 14), + QPoint(-1, 14), + QPoint(-1, -89), + QPoint(1, -89) + }; + + const QColor hourColor(palette().color(QPalette::Text)); + const QColor minuteColor(palette().color(QPalette::Text)); + const QColor secondsColor(palette().color(QPalette::Accent)); int side = qMin(width(), height()); //! [10] @@ -54,9 +64,12 @@ void AnalogClock::paintEvent(QPaintEvent *) painter.setRenderHint(QPainter::Antialiasing); //! [12] //! [13] painter.translate(width() / 2, height() / 2); -//! [13] //! [14] painter.scale(side / 200.0, side / 200.0); -//! [9] //! [14] +//! [9] //! [13] + +//! [14] + QTime time = QTime::currentTime(); +//! [14] //! [15] painter.setPen(Qt::NoPen); @@ -64,36 +77,45 @@ void AnalogClock::paintEvent(QPaintEvent *) painter.setBrush(hourColor); //! [16] //! [18] - QTime time = QTime::currentTime(); + //! [17] painter.save(); //! [17] //! [19] painter.rotate(30.0 * ((time.hour() + time.minute() / 60.0))); - painter.drawConvexPolygon(hourHand, 3); + painter.drawConvexPolygon(hourHand, 4); painter.restore(); //! [18] //! [19] //! [20] - painter.setPen(hourColor); -//! [20] //! [21] - for (int i = 0; i < 12; ++i) { - painter.drawLine(88, 0, 96, 0); + painter.drawRect(73, -3, 16, 6); painter.rotate(30.0); } +//! [20] + //! [21] + painter.setBrush(minuteColor); //! [22] - painter.setPen(Qt::NoPen); -//! [22] //! [23] - painter.setBrush(minuteColor); + painter.save(); + painter.rotate(6.0 * time.minute()); + painter.drawConvexPolygon(minuteHand, 4); + painter.restore(); +//! [21] //! [22] + + +//! [23] + painter.setBrush(secondsColor); +//! [23] //! [24] painter.save(); - painter.rotate(6.0 * (time.minute() + time.second() / 60.0)); - painter.drawConvexPolygon(minuteHand, 3); + painter.rotate(6.0 * time.second()); + painter.drawConvexPolygon(secondsHand, 4); + painter.drawEllipse(-3, -3, 6, 6); + painter.drawEllipse(-5, -68, 10, 10); painter.restore(); -//! [23] //! [24] +//! [24] //! [25] painter.setPen(minuteColor); @@ -101,10 +123,10 @@ void AnalogClock::paintEvent(QPaintEvent *) //! [27] for (int j = 0; j < 60; ++j) { - if ((j % 5) != 0) - painter.drawLine(92, 0, 96, 0); + painter.drawLine(92, 0, 96, 0); painter.rotate(6.0); } //! [27] + } //! [26] |