Base class for needles that can be used in a QwtDial. More...
#include <qwt_dial_needle.h>

Public Member Functions | |
| QwtDialNeedle () | |
| Constructor. | |
| virtual | ~QwtDialNeedle () |
| Destructor. | |
| virtual void | draw (QPainter *painter, const QPoint ¢er, int length, double direction, QPalette::ColorGroup cg=QPalette::Active) const =0 |
| virtual void | setPalette (const QPalette &) |
| const QPalette & | palette () const |
Static Protected Member Functions | |
| static void | drawKnob (QPainter *, const QPoint &pos, int width, const QBrush &, bool sunken) |
| Draw the knob. | |
Base class for needles that can be used in a QwtDial.
QwtDialNeedle is a pointer that indicates a value by pointing to a specific direction.
Qwt is missing a set of good looking needles. Contributions are very welcome.
Definition at line 31 of file qwt_dial_needle.h.
| QwtDialNeedle::QwtDialNeedle | ( | ) |
Constructor.
Definition at line 25 of file qwt_dial_needle.cpp.
:
d_palette(QApplication::palette())
{
}
| QwtDialNeedle::~QwtDialNeedle | ( | ) | [virtual] |
| virtual void QwtDialNeedle::draw | ( | QPainter * | painter, |
| const QPoint & | center, | ||
| int | length, | ||
| double | direction, | ||
| QPalette::ColorGroup | cg = QPalette::Active |
||
| ) | const [pure virtual] |
Draw the needle
| painter | Painter |
| center | Center of the dial, start position for the needle |
| length | Length of the needle |
| direction | Direction of the needle, in degrees counter clockwise |
| cg | Color group, used for painting |
Implemented in QwtDialSimpleNeedle, QwtCompassMagnetNeedle, and QwtCompassWindArrow.
Referenced by QwtAnalogClock::drawHand(), and QwtDial::drawNeedle().
| void QwtDialNeedle::drawKnob | ( | QPainter * | painter, |
| const QPoint & | pos, | ||
| int | width, | ||
| const QBrush & | brush, | ||
| bool | sunken | ||
| ) | [static, protected] |
Draw the knob.
Definition at line 54 of file qwt_dial_needle.cpp.
Referenced by QwtDialSimpleNeedle::drawArrowNeedle(), QwtDialSimpleNeedle::drawRayNeedle(), and QwtCompassMagnetNeedle::drawThinNeedle().
{
painter->save();
QRect rect(0, 0, width, width);
rect.moveCenter(pos);
painter->setPen(Qt::NoPen);
painter->setBrush(brush);
painter->drawEllipse(rect);
painter->setBrush(Qt::NoBrush);
const int colorOffset = 20;
int startAngle = 45;
if ( sunken )
startAngle += 180;
QPen pen;
pen.setWidth(1);
pen.setColor(brush.color().dark(100 - colorOffset));
painter->setPen(pen);
painter->drawArc(rect, startAngle * 16, 180 * 16);
pen.setColor(brush.color().dark(100 + colorOffset));
painter->setPen(pen);
painter->drawArc(rect, (startAngle + 180) * 16, 180 * 16);
painter->restore();
}
| const QPalette & QwtDialNeedle::palette | ( | ) | const |
Definition at line 48 of file qwt_dial_needle.cpp.
Referenced by QwtCompassWindArrow::draw(), QwtCompassMagnetNeedle::draw(), QwtDialSimpleNeedle::draw(), QwtCompassMagnetNeedle::QwtCompassMagnetNeedle(), QwtCompassWindArrow::QwtCompassWindArrow(), QwtDialSimpleNeedle::QwtDialSimpleNeedle(), and setPalette().
{
return d_palette;
}
| void QwtDialNeedle::setPalette | ( | const QPalette & | palette ) | [virtual] |
Sets the palette for the needle.
| palette | New Palette |
Definition at line 40 of file qwt_dial_needle.cpp.
References palette().
Referenced by QwtCompassMagnetNeedle::QwtCompassMagnetNeedle(), QwtCompassWindArrow::QwtCompassWindArrow(), and QwtDialSimpleNeedle::QwtDialSimpleNeedle().
{
d_palette = palette;
}
1.7.2