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
}
Exemple #2
0
// 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 
}
Exemple #3
0
// 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));

}
Exemple #5
0
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
Exemple #6
0
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