void ChanWidgetLED::paintEvent(QPaintEvent * /* event*/ ) { QPainter painter(this); initCoordinateSystem(painter); int h,s,v,a; QColor c,back = color(); c=back; if (!m_checked || !isEnabled()) { back.getHsv(&h,&s,&v,&a); s*=0.20; back.setHsv(h,s,v,a); } painter.setBrush(back); QPen pen; c.getHsv(&h,&s,&v,&a); s*=0.5; c.setHsv(h,s,v,a); pen.setColor(c); pen.setWidthF(3.0); painter.drawEllipse(-(size-size/10)/2,-(size-size/10)/2,(size-size/10),(size-size/10)); painter.end(); drawBackground(); // to maluje na tym co dotychczas to co jest w bitmapce }
// Maluje ca³± diodê - ko³o o kolorze bazowym a na to nak³ada odblask. void Led::paintEvent(QPaintEvent * /* event*/ ) { QPainter painter(this); initCoordinateSystem(painter); // *** Draw circle */ int h,s,v,a; QColor c,back = color(); c=back; // Kolor diody if (!m_checked || !isEnabled()) { back.getHsv(&h,&s,&v,&a); s*=0.20; back.setHsv(h,s,v,a); } painter.setBrush(back); // obwudka diody QPen pen; // przyciemnienie obwudki c.getHsv(&h,&s,&v,&a); s*=0.5; c.setHsv(h,s,v,a); pen.setColor(c); pen.setWidthF(3.0); painter.drawEllipse(-149,-149,299,299); painter.end(); // odblask ¶wiat³a diody drawBackground(); // to maluje na tym co dotychczas to co jest w bitmapce }
// Rysuje odblask swiat³a na diodzie void Led::paintBackground(QPainter & painter) { initCoordinateSystem(painter); painter.setPen(Qt::NoPen); QRadialGradient shine(QPointF(-40.0,-40.0),120.0,QPointF(-40,-40)); QColor white1(255,255,255,200); QColor white0(255,255,255,0); shine.setColorAt(0.0,white1); shine.setColorAt(1.0,white0); painter.setBrush(shine); painter.drawEllipse(-147,-147,297,297); }
void ChanWidgetLED::paintBackground(QPainter & painter) { initCoordinateSystem(painter); painter.setPen(Qt::NoPen); QRadialGradient shine(QPointF(-(size-size/10)/7.5,-(size-size/10)/7.5),(size-size/10)/2.5, QPointF(-(size-size/10)/7.5,-(size-size/10)/7.5)); QColor white1(255,255,255,200); QColor white0(255,255,255,0); shine.setColorAt(0.0,white1); shine.setColorAt(1.0,white0); painter.setBrush(shine); painter.drawEllipse(-(size-size/10)/2,-(size-size/10)/2,(size-size/10),(size-size/10)); }
void WallClock::paintBackground(QPainter & painter) { initCoordinateSystem(painter); // Malowanie obwiedni tarczy. //QColor ramka(17,50,214);// ³adny niebieski QColor ramka(215,0,0); // g³êboki czerwony // Gradient zewnêtrznego okrêgu QRadialGradient back1(QPointF(0,0),135, QPointF(-27.5,110.0)); back1.setColorAt(0.0,QColor(255,255,255)); back1.setColorAt(1.0,ramka); // Gradient wewnêtrznego okrêgu QRadialGradient back2(QPoint(0,0),170, QPointF(57.5,100)); back2.setColorAt(0.0,ramka); back2.setColorAt(1.0,QColor(255,255,255)); QRadialGradient shield(QPointF(0,0),122,QPointF(-12.0,-15.0)); shield.setColorAt(0.0,Qt::white); shield.setColorAt(0.5,QColor(240,240,240)); shield.setColorAt(1.0,QColor(215,215,215)); QPen Pen(Qt::black); Pen.setWidth(2); painter.setPen(Pen); // Koperta zegark painter.setBrush(QBrush(back1)); painter.drawEllipse(-116,-116,232,232); painter.setBrush(QBrush(back2)); painter.setPen(Qt::NoPen); painter.drawEllipse(-109,-109,218,218); painter.setPen(Pen); painter.setBrush(QBrush(shield)); painter.drawEllipse(-102,-102,204,204); painter.setBrush(Qt::black); // rysowanie kó³ek godzin i samych godzin for (int i = 0; i < 12; ++i) { painter.drawEllipse(94, -2, 4, 4); painter.rotate(30.0); } // rysowanie kresek minut painter.setPen(Qt::black); Pen.setWidth(2); painter.setPen(Pen); for (int j = 0; j < 60; ++j) { if ((j % 5) != 0) painter.drawLine(94, 0, 97, 0); painter.rotate(6.0); } QSize Size; QString Str; // Rysowanie cyfr na tarczy if (digitOffset()!=0.0) { painter.setFont(digitFont()); painter.setPen(digitColor()); for ( int z = 1; z <= 12; ++z) { QString hour = QString("%1").arg(z); Size = painter.fontMetrics().size(Qt::TextSingleLine, hour); painter.save(); painter.translate(digitOffset() * cos(PI*z/6.0-PI/2.0),digitOffset() * sin(PI*z/6.0-PI/2.0)); painter.setPen(digitColor()); painter.drawText( QPointF ( Size.width()/ -2.0, Size.height() / 4.0), hour); painter.restore(); } } }// paintBackground
void WallClock::paintEvent(QPaintEvent *) { static const int hourHand[8] = { -2, 18, 2, 18, 2, -60, -2, -60 }; static const int minuteHand[8] = { -2, 28, 2, 28, 2, -80, -2, -80 }; static const int secondHand[12] = {-1, 0, -1, -90, 1,-90, 1, 0, 4, 35, -4, 35}; // odmalowywuje t³o drawBackground(); // inicjalizacja paintera QPainter painter(this); initCoordinateSystem(painter); // Wyliczanie czasu i daty QTime time = m_dateTime.time(); QDate date = m_dateTime.date(); QString Str; QSize Size; if (timeOffset()!=0.0) { // Rysowanie tekstów - godziny painter.setFont(timeFont()); painter.setPen(timeColor()); Str = time.toString("hh:mm"); Size = painter.fontMetrics().size(Qt::TextSingleLine, Str ); painter.drawText( QPointF (Size.width() / -2.0, Size.height()+ timeOffset()) ,Str); } if (dateOffset()!=0.0) { // Rysowanie daty painter.setFont(dateFont()); painter.setPen(dateColor()); Str = date.toString("dd.MM.yyyy"); Size = painter.fontMetrics().size(Qt::TextSingleLine, Str); painter.drawText( QPointF(Size.width() / -2.0,static_cast<int>(0 - dateOffset())), Str); } if (dayOffset()!=0.0) { // Dzieñ tygodnia painter.setFont(dayFont()); painter.setPen(dayColor()); Str = date.toString("dddd"); Size = painter.fontMetrics().size(Qt::TextSingleLine, Str); painter.drawText( QPointF (Size.width() / -2.0,static_cast<int>( 0 - dayOffset())) , Str); } // rysowanie wskazówki godzin painter.setPen(Qt::NoPen); painter.setBrush(Qt::black); painter.save(); painter.rotate(30.0 * ((time.hour() + time.minute() / 60.0))); painter.drawConvexPolygon(QPolygon(4, hourHand)); painter.restore(); // rysowanie minutnika painter.setBrush(Qt::black); painter.save(); painter.rotate(6.0 * (time.minute() + time.second() / 60.0)); painter.drawConvexPolygon(QPolygon(4, minuteHand)); painter.restore(); // Malowanie wskazówki sekundnika painter.setPen(Qt::NoPen); painter.setBrush(Qt::red); painter.save(); painter.rotate(6.0 * ( time.second())); // + time.msec() / 1000.0) ); painter.drawConvexPolygon(QPolygon(6, secondHand)); painter.restore(); // Kó³ko sekundnika painter.drawEllipse(-5,-5,10,10); }// paintEvent