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.
93 lines
2.2 KiB
93 lines
2.2 KiB
/* -*- 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: |
|
/*! |
|
Hand type |
|
\sa setHand(), hand() |
|
*/ |
|
|
|
enum Hand { |
|
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; |
|
|
|
virtual void drawHand(QPainter *, Hand, const QPoint &, |
|
int radius, double direction, QPalette::ColorGroup) const; |
|
|
|
private: |
|
virtual void setNeedle(QwtDialNeedle *); |
|
void initClock(); |
|
|
|
QwtDialNeedle *d_hand[NHands]; |
|
}; |
|
|
|
#endif
|
|
|