10 #include "qwt_compass.h" 
   11 #include "qwt_compass_rose.h" 
   17 class QwtCompassScaleDraw::PrivateData
 
   30     m_data = 
new PrivateData;
 
   37     map.insert( 0.0, QString::fromLatin1( 
"N" ) );
 
   38     map.insert( 45.0, QString::fromLatin1( 
"NE" ) );
 
   39     map.insert( 90.0, QString::fromLatin1( 
"E" ) );
 
   40     map.insert( 135.0, QString::fromLatin1( 
"SE" ) );
 
   41     map.insert( 180.0, QString::fromLatin1( 
"S" ) );
 
   42     map.insert( 225.0, QString::fromLatin1( 
"SW" ) );
 
   43     map.insert( 270.0, QString::fromLatin1( 
"W" ) );
 
   44     map.insert( 315.0, QString::fromLatin1( 
"NW" ) );
 
   47     map.insert( 22.5, QString::fromLatin1( 
"NNE" ) );
 
   48     map.insert( 67.5, QString::fromLatin1( 
"NEE" ) );
 
   49     map.insert( 112.5, QString::fromLatin1( 
"SEE" ) );
 
   50     map.insert( 157.5, QString::fromLatin1( 
"SSE" ) );
 
   51     map.insert( 202.5, QString::fromLatin1( 
"SSW" ) );
 
   52     map.insert( 247.5, QString::fromLatin1( 
"SWW" ) );
 
   53     map.insert( 292.5, QString::fromLatin1( 
"NWW" ) );
 
   54     map.insert( 337.5, QString::fromLatin1( 
"NNW" ) );
 
   65     m_data = 
new PrivateData;
 
   66     m_data->labelMap = map;
 
   92     m_data->labelMap = map;
 
  101     return m_data->labelMap;
 
  118     if ( qFuzzyCompare( value + 1.0, 1.0 ) )
 
  125         m_data->labelMap.constFind( value );
 
  127     if ( it != m_data->labelMap.constEnd() )
 
  133 class QwtCompass::PrivateData
 
  161     m_data = 
new PrivateData;
 
  190     const QPointF& center, 
double radius )
 const 
  192     QPalette::ColorGroup cg;
 
  194         cg = hasFocus() ? QPalette::Active : QPalette::Inactive;
 
  196         cg = QPalette::Disabled;
 
  205     const int margin = 4;
 
  206     drawRose( painter, center, radius - margin, 360.0 - north,  cg );
 
  219     double radius, 
double north, QPalette::ColorGroup cg )
 const 
  222         m_data->rose->draw( painter, center, radius, north,  cg );
 
  234     if ( 
rose != m_data->rose )
 
  277     if ( kev->key() == Key_5 )
 
  284     double newValue = 
value();
 
  286     if ( kev->key() >= Qt::Key_1 && kev->key() <= Qt::Key_9 )
 
  291         switch ( kev->key() )
 
  294                 newValue = 180.0 * 0.0;
 
  297                 newValue = 180.0 * 0.25;
 
  300                 newValue = 180.0 * 0.5;
 
  303                 newValue = 180.0 * 0.75;
 
  306                 newValue = 180.0 * 1.0;
 
  309                 newValue = 180.0 * 1.25;
 
  312                 newValue = 180.0 * 1.5;
 
  315                 newValue = 180.0 * 1.75;
 
  328 #include "moc_qwt_compass.cpp" 
@ Backbone
Backbone = the line where the ticks are located.
void enableComponent(ScaleComponent, bool enable=true)
void setScaleMaxMajor(int ticks)
Set the maximum number of major tick intervals.
void setScaleMaxMinor(int ticks)
Set the maximum number of minor tick intervals.
void setScale(double lowerBound, double upperBound)
Specify a scale.
virtual void keyPressEvent(QKeyEvent *) override
void setTotalSteps(uint)
Set the number of steps.
void setValue(double value)
double value() const
Returns the current value.
QwtCompass(QWidget *parent=NULL)
Constructor.
void setRose(QwtCompassRose *rose)
virtual void keyPressEvent(QKeyEvent *) override
virtual void drawRose(QPainter *, const QPointF ¢er, double radius, double north, QPalette::ColorGroup) const
virtual void drawScaleContents(QPainter *, const QPointF ¢er, double radius) const override
virtual ~QwtCompass()
Destructor.
const QwtCompassRose * rose() const
Abstract base class for a compass rose.
A special scale draw made for QwtCompass.
virtual QwtText label(double value) const override
void setLabelMap(const QMap< double, QString > &map)
Set a map, mapping values to labels.
virtual ~QwtCompassScaleDraw()
Destructor.
QMap< double, QString > labelMap() const
QwtCompassScaleDraw()
Constructor.
QwtDial class provides a rounded range control.
void setScaleDraw(QwtRoundScaleDraw *)
virtual void setOrigin(double)
Change the origin.
@ RotateScale
The needle is fixed, the scales are rotating.
@ RotateNeedle
The needle is rotating.
A class representing a text.