rock_widget_collection  0.1
compass.cc
Go to the documentation of this file.
1 #include "compass.h"
2 #include <QtCore/QtPlugin>
3 #include <iostream>
4 #include <qwt_compass.h>
5 #include <qwt_compass_rose.h>
6 #include <qwt_dial_needle.h>
7 #include <QHBoxLayout>
8 #include <QLabel>
9 #include <math.h>
10 
11 Compass::Compass(QWidget* parent): MultiWidget(parent)
12 {
13  // add a layout
14  layout = new QVBoxLayout;
15  setLayout(layout);
16 
17  // Label
18  number = new QLabel();
19  //number->setMaximumSize(100,50);
20  number->setAlignment(Qt::AlignHCenter);
21  number->setText("NaN / NaN");
22  layout->addWidget(number);
23 
24  // compass
25  compass = new QwtCompass();
26  layout->addWidget(compass);
27  // not suppored by qwt 6
28  // compass->setScaleOptions(QwtDial::ScaleTicks | QwtDial::ScaleLabel);
29  needle = new QwtCompassMagnetNeedle(QwtCompassMagnetNeedle::TriangleStyle, Qt::white, Qt::red);
30  compass->setNeedle(needle);
31 }
32 
34 {
35  return new Compass();
36 }
37 
38 void Compass::setHeading(double v)
39 {
40  QString heading_text = QString("%1 / %2").arg(v).arg(v/M_PI*180.0);
41 
42  compass->setValue(-v/M_PI*180.0);
43  number->setText(heading_text);
44 }
45 
46 /*
47 Compass::~Compass()
48 {
49  delete compass;
50  delete needle;
51 }
52 */
QLabel * number
Definition: compass.h:32
QVBoxLayout * layout
Definition: compass.h:28
QwtCompassMagnetNeedle * needle
Definition: compass.h:31
void setHeading(double value)
Definition: compass.cc:38
QwtCompass * compass
Definition: compass.h:30
Compass * newInstance()
Definition: compass.cc:33
Compass(QWidget *parent=NULL)
Definition: compass.cc:11