1 #include "ledwidget.h"
2
3 #include <QtGui/QPainter>
4
5
6 namespace QSint
7 {
8
9
LedWidget(QWidget * parent)10 LedWidget::LedWidget(QWidget *parent) :
11 QWidget(parent)
12 {
13 setColor(Qt::gray);
14 }
15
16
setColor(const QColor & ledColor)17 void LedWidget::setColor(const QColor &ledColor)
18 {
19 m_gradient.setColorAt(0.0, Qt::white);
20 m_gradient.setColorAt(1.0, ledColor);
21 }
22
23
setColors(const QColor & ledColor,const QColor & highlightColor)24 void LedWidget::setColors(const QColor &ledColor, const QColor &highlightColor)
25 {
26 m_gradient.setColorAt(0.0, highlightColor);
27 m_gradient.setColorAt(1.0, ledColor);
28 }
29
30
paintEvent(QPaintEvent *)31 void LedWidget::paintEvent(QPaintEvent * /*event*/)
32 {
33 QPainter p(this);
34
35 p.setPen(QPen(Qt::black));
36 p.setRenderHint(QPainter::Antialiasing);
37
38 int radius = qMin(rect().width(), rect().height()) / 2 - 2;
39
40 m_gradient.setCenter(rect().center());
41 m_gradient.setFocalPoint(rect().center() - QPoint(radius / 2, radius / 2));
42 m_gradient.setRadius(radius);
43
44 p.setBrush(m_gradient);
45
46 p.drawEllipse(rect().center(), radius, radius);
47 }
48
49
50 }
51
52