CFEL - ASG Software Suite
2.5.0
CASS
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
jocassview
led.cpp
Go to the documentation of this file.
1
/**
2
* @file led.cpp a led in qt
3
*
4
* @author unknown
5
*/
6
7
#include <cmath>
8
9
#include <QtCore/QTimer>
10
11
#include <QtGui/QPainter>
12
#include <QtGui/QGradient>
13
#include <QtGui/QPaintDevice>
14
15
#include "
led.h
"
16
17
LED::LED
(
QWidget
* parent) :
18
QWidget
(parent),
19
diameter_(5),
20
color_(
QColor
(
"red"
)),
21
alignment_(Qt::AlignCenter),
22
initialState_(true),
23
state_(true),
24
flashRate_(200),
25
flashing_(false)
26
{
27
timer_
=
new
QTimer
(
this
);
28
connect(
timer_
, SIGNAL(timeout()),
this
, SLOT(
toggleState
()));
29
30
setDiameter
(
diameter_
);
31
}
32
33
LED::~LED
()
34
{
35
}
36
37
38
double
LED::diameter
()
const
39
{
40
return
diameter_
;
41
}
42
43
void
LED::setDiameter
(
double
diameter)
44
{
45
diameter_
=
diameter
;
46
47
pixX_
= round(
double
(
height
())/heightMM());
48
pixY_
= round(
double
(
width
())/widthMM());
49
50
diamX_
=
diameter_
*
pixX_
;
51
diamY_
=
diameter_
*
pixY_
;
52
53
update
();
54
}
55
56
57
QColor
LED::color
()
const
58
{
59
return
color_
;
60
}
61
62
void
LED::setColor
(
const
QColor
& color)
63
{
64
color_
=
color
;
65
update
();
66
}
67
68
Qt::Alignment
LED::alignment
()
const
69
{
70
return
alignment_
;
71
}
72
73
void
LED::
74
setAlignment
(Qt::Alignment alignment)
75
{
76
alignment_
=
alignment
;
77
78
update
();
79
}
80
81
void
LED::setFlashRate
(
int
rate
)
82
{
83
flashRate_
=
rate
;
84
85
update
();
86
}
87
88
void
LED::setFlashing
(
bool
flashing)
89
{
90
flashing_
=
flashing
;
91
92
update
();
93
}
94
95
void
LED::startFlashing
()
96
{
97
setFlashing
(
true
);
98
}
99
100
void
LED::stopFlashing
()
101
{
102
setFlashing
(
false
);
103
}
104
105
106
void
LED::setState
(
bool
state)
107
{
108
state_
=
state
;
109
update
();
110
}
111
112
void
LED::toggleState
()
113
{
114
state_
= !
state_
;
115
update
();
116
}
117
118
int
LED::heightForWidth
(
int
width
)
const
119
{
120
return
width
;
121
}
122
123
QSize
LED::sizeHint
()
const
124
{
125
return
QSize
(
diamX_
,
diamY_
);
126
}
127
128
QSize
LED::minimumSizeHint
()
const
129
{
130
return
QSize
(
diamX_
,
diamY_
);
131
}
132
133
void
LED::paintEvent
(
QPaintEvent
*event)
134
{
135
Q_UNUSED(event);
136
137
QPainter
p(
this
);
138
139
QRect
geo = geometry();
140
int
width
= geo.
width
();
141
int
height
= geo.
height
();
142
143
int
x
=0,
y
=0;
144
if
(
alignment_
& Qt::AlignLeft )
145
x = 0;
146
else
if
(
alignment_
& Qt::AlignRight )
147
x = width-
diamX_
;
148
else
if
(
alignment_
& Qt::AlignHCenter )
149
x = (width-
diamX_
)/2;
150
else
if
(
alignment_
& Qt::AlignJustify )
151
x = 0;
152
153
if
(
alignment_
& Qt::AlignTop )
154
y
= 0;
155
else
if
(
alignment_
& Qt::AlignBottom )
156
y
= height-
diamY_
;
157
else
if
(
alignment_
& Qt::AlignVCenter )
158
y
= (height-
diamY_
)/2;
159
160
QRadialGradient
g(x+diamX_/2,
y
+diamY_/2, diamX_*0.4,
161
diamX_*0.4, diamY_*0.4);
162
163
g.setColorAt(0, Qt::white);
164
if
(
state_
)
165
g.setColorAt(1,
color_
);
166
else
167
g.setColorAt(1, Qt::black);
168
QBrush
brush(g);
169
170
p.
setPen
(
color_
);
171
p.
setRenderHint
(QPainter::Antialiasing,
true
);
172
p.
setBrush
(brush);
173
p.
drawEllipse
(x,
y
, diamX_-1, diamY_-1);
174
175
if
(
flashRate_
> 0 &&
flashing_
)
176
timer_
->
start
(
flashRate_
);
177
else
178
timer_
->
stop
();
179
}
180
181
bool
LED::state
()
const
182
{
183
return
state_
;
184
}
185
186
bool
LED::isFlashing
()
const
187
{
188
return
flashing_
;
189
}
190
191
int
LED::flashRate
()
const
192
{
193
return
flashRate_
;
194
}
QWidget
LED::flashing
bool flashing
Definition:
led.h:23
LED::pixX_
int pixX_
Definition:
led.h:73
QPainter::setRenderHint
setRenderHint(RenderHint hint, bool on=true)
LED::setFlashRate
void setFlashRate(int rate)
Definition:
led.cpp:81
LED::isFlashing
bool isFlashing() const
Definition:
led.cpp:186
LED::startFlashing
void startFlashing()
Definition:
led.cpp:95
QPainter::setPen
setPen(const QPen &pen)
LED::setAlignment
void setAlignment(Qt::Alignment alignment)
Definition:
led.cpp:74
LED::timer_
QTimer * timer_
Definition:
led.h:81
LED::toggleState
void toggleState()
Definition:
led.cpp:112
QRect::height
height()
QBrush
LED::~LED
~LED()
Definition:
led.cpp:33
LED::diamX_
int diamX_
Definition:
led.h:78
LED::setFlashing
void setFlashing(bool flashing)
Definition:
led.cpp:88
LED::state_
bool state_
Definition:
led.h:66
QWidget::update
update()
LED::setColor
void setColor(const QColor &color)
Definition:
led.cpp:62
cass::ACQIRIS::x
Definition:
acqiris_analysis_definitions.hpp:57
LED::state
bool state() const
LED::sizeHint
QSize sizeHint() const
Definition:
led.cpp:123
QRect
cass::ACQIRIS::height
Definition:
acqiris_analysis_definitions.hpp:76
LED::diameter_
double diameter_
Definition:
led.h:62
LED::LED
LED(QWidget *parent=0)
Definition:
led.cpp:17
QTimer
QPainter::drawEllipse
drawEllipse(const QRectF &rectangle)
LED::pixY_
int pixY_
Definition:
led.h:73
QPainter
LED::color
QColor color() const
LED::alignment_
Qt::Alignment alignment_
Definition:
led.h:64
LED::alignment
Qt::Alignment alignment() const
QPainter::setBrush
setBrush(const QBrush &brush)
LED::stopFlashing
void stopFlashing()
Definition:
led.cpp:100
LED::flashRate_
int flashRate_
Definition:
led.h:67
QColor
LED::minimumSizeHint
QSize minimumSizeHint() const
Definition:
led.cpp:128
LED::flashRate
int flashRate() const
QSize
QTimer::stop
stop()
LED::paintEvent
void paintEvent(QPaintEvent *event)
Definition:
led.cpp:133
LED::setState
void setState(bool state)
Definition:
led.cpp:106
QRect::width
width()
rate
display the real hit rate
Definition:
singleParticle.ini:135
LED::diamY_
int diamY_
Definition:
led.h:78
cass::ACQIRIS::width
Definition:
acqiris_analysis_definitions.hpp:78
QRadialGradient
cass::ACQIRIS::y
Definition:
acqiris_analysis_definitions.hpp:58
LED::diameter
double diameter() const
LED::heightForWidth
int heightForWidth(int width) const
Definition:
led.cpp:118
led.h
an led in qt
LED::flashing_
bool flashing_
Definition:
led.h:68
QTimer::start
start(int msec)
QPaintEvent
LED::setDiameter
void setDiameter(double diameter)
Definition:
led.cpp:43
LED::color_
QColor color_
Definition:
led.h:63
Impressum
privacy
-- Generated on Thu Nov 29 2018 21:31:26 for CFEL - ASG Software Suite by
1.8.10