地面站终端 App
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

94 lines
0 B

15 years ago
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
* Qwt Widget Library
* Copyright (C) 1997 Josef Wilgen
* Copyright (C) 2002 Uwe Rathmann
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the Qwt License, Version 1.0
*****************************************************************************/
#ifndef QWT_ANALOG_CLOCK_H
#define QWT_ANALOG_CLOCK_H
#include <qdatetime.h>
#include "qwt_global.h"
#include "qwt_dial.h"
#include "qwt_dial_needle.h"
/*!
\brief An analog clock
\image html analogclock.png
\par Example
\verbatim #include <qwt_analog_clock.h>
QwtAnalogClock *clock = new QwtAnalogClock(...);
clock->scaleDraw()->setPenWidth(3);
clock->setLineWidth(6);
clock->setFrameShadow(QwtDial::Sunken);
clock->setTime();
// update the clock every second
QTimer *timer = new QTimer(clock);
timer->connect(timer, SIGNAL(timeout()), clock, SLOT(setCurrentTime()));
timer->start(1000);
\endverbatim
Qwt is missing a set of good looking hands.
Contributions are very welcome.
\note The examples/dials example shows how to use QwtAnalogClock.
*/
class QWT_EXPORT QwtAnalogClock: public QwtDial
{
Q_OBJECT
public:
/*!
15 years ago
Hand type
\sa setHand(), hand()
*/
enum Hand {
15 years ago
SecondHand,
MinuteHand,
HourHand,
NHands
};
explicit QwtAnalogClock(QWidget* parent = NULL);
#if QT_VERSION < 0x040000
explicit QwtAnalogClock(QWidget* parent, const char *name);
#endif
virtual ~QwtAnalogClock();
virtual void setHand(Hand, QwtDialNeedle *);
const QwtDialNeedle *hand(Hand) const;
QwtDialNeedle *hand(Hand);
public slots:
void setCurrentTime();
void setTime(const QTime & = QTime::currentTime());
protected:
virtual QwtText scaleLabel(double) const;
virtual void drawNeedle(QPainter *, const QPoint &,
int radius, double direction, QPalette::ColorGroup) const;
15 years ago
virtual void drawHand(QPainter *, Hand, const QPoint &,
int radius, double direction, QPalette::ColorGroup) const;
15 years ago
private:
virtual void setNeedle(QwtDialNeedle *);
void initClock();
QwtDialNeedle *d_hand[NHands];
};
#endif