- #include "Clock.h"
- Clock::clock (Qwidget *parent)
- : Qwidget (parent)
- {
- Qtimer *timer = new Qtimer (this);
- Timer->start (1000);//One second
- Connect (timer,signal ()), This,slot (Update ()));
- Qfont font;
- Font.setpointsize (10);//font size set to 10
- SetFont (font);
- }
- Clock::~clock ()
- {
- }
- void CLOCK::p aintevent (qpaintevent */* Event */)
- {
- qpainter painter (this);
- Painter.setrenderhint (qpainter::antialiasing, true);
- int side = Qmin (width (), height ());
- Painter.setviewport ((Width ()-side)/2, (height ()-side)/2,
- side, side);
- Painter.setwindow (0, 0, 200, 200);/* Set (0,0) as the new origin of coordinates */
- Draw (&painter);
- }
- void CLOCK::d raw (Qpainter *painter)
- {
- Qpen Thickpen (Palette () foreground (), 1.5);//Set tick mark to thick black
- Qpen Thinpen (Palette (). foreground (), 0.5);//Set tick mark to gray
- Qtime time = Qtime::currenttime ();
- Painter->translate (100,100);//re-set the origin of the coordinates.
- Painter->setrenderhint (qpainter::antialiasing);//anti-aliasing
- Painter->setbrush (qt::red);
- Painter->setpen (qt::red);
- Painter->save ();//Save coordinate system to prevent the coordinate system from running off
- Painter->rotate (6.0*time.second ());//note is 6.0, not 6
- Painter->drawconvexpolygon (sed,4);
- Painter->restore ();//coordinate system before reset
- Painter->setbrush (Qt::blue);
- Painter->setpen (Qt::blue);
- Painter->save ();
- Painter->rotate (6.0* (Time.minute () +time.second ()/60.0);
- Painter->drawconvexpolygon (min,4);
- Painter->restore ();
- Painter->setbrush (Qt::black);
- Painter->setpen (Qt::black);
- Painter->save ();
- Painter->rotate (30.0* (Time.hour () +time.minute ()/60.0);
- Painter->drawconvexpolygon (hour,4);
- Painter->restore ();
- Painter->drawline (0,-98,0,-88);
- for (int i=0;i<12;i++)
- // {
- Painter->rotate (30);//axis rotation 30 degrees
- Painter->drawline (0,-98,0,-88);
- // }
- /* Draw a scale with a number */
- for (int i = 1; I <=60; ++i) {
- Painter->save ();
- Painter->rotate (6*i);//axis rotation 6 degrees
- if (i% 5 = = 0) {
- Painter->setpen (Thickpen);
- Painter->drawline (0,-98, 0,-82);
- Painter->drawtext (-20,-82, 40, 40,
- Qt::alignhcenter | Qt::aligntop,
- Qstring::number (I/5));
- } else {
- Painter->setpen (Thinpen);
- Painter->drawline (0,-98, 0,-88);
- }
- Painter->rotate (-degreesperminute);
- Painter->restore ();
- }
- }
QT Implementation clock icon