Qwt User's Guide  6.1.3
QwtDateScaleDraw Class Reference

A class for drawing datetime scales. More...

#include <qwt_date_scale_draw.h>

Inheritance diagram for QwtDateScaleDraw:

Public Member Functions

 QwtDateScaleDraw (Qt::TimeSpec=Qt::LocalTime)
 Constructor. More...
virtual ~QwtDateScaleDraw ()
void setDateFormat (QwtDate::IntervalType, const QString &)
QString dateFormat (QwtDate::IntervalType) const
void setTimeSpec (Qt::TimeSpec)
Qt::TimeSpec timeSpec () const
void setUtcOffset (int seconds)
int utcOffset () const
void setWeek0Type (QwtDate::Week0Type)
QwtDate::Week0Type week0Type () const
virtual QwtText label (double) const
 Convert a value into its representing label. More...
QDateTime toDateTime (double) const
- Public Member Functions inherited from QwtScaleDraw
 QwtScaleDraw ()
 Constructor. More...
virtual ~QwtScaleDraw ()
void getBorderDistHint (const QFont &, int &start, int &end) const
 Determine the minimum border distance. More...
int minLabelDist (const QFont &) const
int minLength (const QFont &) const
virtual double extent (const QFont &) const
void move (double x, double y)
void move (const QPointF &)
 Move the position of the scale. More...
void setLength (double length)
Alignment alignment () const
void setAlignment (Alignment)
Qt::Orientation orientation () const
QPointF pos () const
double length () const
void setLabelAlignment (Qt::Alignment)
 Change the label flags. More...
Qt::Alignment labelAlignment () const
void setLabelRotation (double rotation)
double labelRotation () const
int maxLabelHeight (const QFont &) const
int maxLabelWidth (const QFont &) const
QPointF labelPosition (double val) const
QRectF labelRect (const QFont &, double val) const
QSizeF labelSize (const QFont &, double val) const
QRect boundingLabelRect (const QFont &, double val) const
 Find the bounding rectangle for the label. More...
- Public Member Functions inherited from QwtAbstractScaleDraw
 QwtAbstractScaleDraw ()
 Constructor. More...
virtual ~QwtAbstractScaleDraw ()
void setScaleDiv (const QwtScaleDiv &s)
const QwtScaleDivscaleDiv () const
void setTransformation (QwtTransform *)
const QwtScaleMapscaleMap () const
QwtScaleMapscaleMap ()
void enableComponent (ScaleComponent, bool enable=true)
bool hasComponent (ScaleComponent) const
void setTickLength (QwtScaleDiv::TickType, double length)
double tickLength (QwtScaleDiv::TickType) const
double maxTickLength () const
void setSpacing (double margin)
 Set the spacing between tick and labels. More...
double spacing () const
 Get the spacing. More...
void setPenWidth (int width)
 Specify the width of the scale pen. More...
int penWidth () const
virtual void draw (QPainter *, const QPalette &) const
 Draw the scale. More...
void setMinimumExtent (double)
 Set a minimum for the extent. More...
double minimumExtent () const

Protected Member Functions

virtual QwtDate::IntervalType intervalType (const QwtScaleDiv &) const
virtual QString dateFormatOfDate (const QDateTime &, QwtDate::IntervalType) const
- Protected Member Functions inherited from QwtScaleDraw
QTransform labelTransformation (const QPointF &, const QSizeF &) const
virtual void drawTick (QPainter *, double val, double len) const
virtual void drawBackbone (QPainter *) const
virtual void drawLabel (QPainter *, double val) const
- Protected Member Functions inherited from QwtAbstractScaleDraw
void invalidateCache ()
const QwtTexttickLabel (const QFont &, double value) const
 Convert a value into its representing label and cache it. More...

Additional Inherited Members

- Public Types inherited from QwtScaleDraw
enum  Alignment { BottomScale, TopScale, LeftScale, RightScale }
- Public Types inherited from QwtAbstractScaleDraw
enum  ScaleComponent { Backbone = 0x01, Ticks = 0x02, Labels = 0x04 }
typedef QFlags< ScaleComponentScaleComponents
 Scale components.

Detailed Description

A class for drawing datetime scales.

QwtDateScaleDraw displays values as datetime labels. The format of the labels depends on the alignment of the major tick labels.

The default format strings are:

  • Millisecond
    "hh:mm:ss:zzz\nddd dd MMM yyyy"
  • Second
    "hh:mm:ss\nddd dd MMM yyyy"
  • Minute
    "hh:mm\nddd dd MMM yyyy"
  • Hour
    "hh:mm\nddd dd MMM yyyy"
  • Day
    "ddd dd MMM yyyy"
  • Week
    "Www yyyy"
  • Month
    "MMM yyyy"
  • Year

The format strings can be modified using setDateFormat() or individually for each tick label by overloading dateFormatOfDate(),

Usually QwtDateScaleDraw is used in combination with QwtDateScaleEngine, that calculates scales for datetime intervals.

See also
QwtDateScaleEngine, QwtPlot::setAxisScaleDraw()

Constructor & Destructor Documentation

QwtDateScaleDraw::QwtDateScaleDraw ( Qt::TimeSpec  timeSpec = Qt::LocalTime)


The default setting is to display tick labels for the given time specification. The first week of a year is defined like for QwtDate::FirstThursday.

timeSpecTime specification
See also
setTimeSpec(), setWeek0Type()

Member Function Documentation

QString QwtDateScaleDraw::dateFormat ( QwtDate::IntervalType  intervalType) const
intervalTypeInterval type
Default format string for an datetime interval type
See also
setDateFormat(), dateFormatOfDate()
QString QwtDateScaleDraw::dateFormatOfDate ( const QDateTime &  dateTime,
QwtDate::IntervalType  intervalType 
) const

Format string for the representation of a datetime

dateFormatOfDate() is intended to be overloaded for situations, where formats are individual for specific datetime values.

The default setting ignores dateTime and return the default format for the interval type.

dateTimeDatetime value
intervalTypeInterval type
Format string
See also
setDateFormat(), QwtDate::toString()
QwtDate::IntervalType QwtDateScaleDraw::intervalType ( const QwtScaleDiv scaleDiv) const

Find the less detailed datetime unit, where no rounding errors happen.

scaleDivScale division
Interval type
See also
QwtText QwtDateScaleDraw::label ( double  value) const

Convert a value into its representing label.

The value is converted to a datetime value using toDateTime() and converted to a plain text using QwtDate::toString().

Label string.
See also

Reimplemented from QwtAbstractScaleDraw.

void QwtDateScaleDraw::setDateFormat ( QwtDate::IntervalType  intervalType,
const QString &  format 

Set the default format string for an datetime interval type

intervalTypeInterval type
formatDefault format string
See also
dateFormat(), dateFormatOfDate(), QwtDate::toString()
void QwtDateScaleDraw::setTimeSpec ( Qt::TimeSpec  timeSpec)

Set the time specification used for the tick labels

timeSpecTime specification
See also
timeSpec(), setUtcOffset(), toDateTime()
void QwtDateScaleDraw::setUtcOffset ( int  seconds)

Set the offset in seconds from Coordinated Universal Time

secondsOffset in seconds
The offset has no effect beside for the time specification Qt::OffsetFromUTC.
See also
QDate::utcOffset(), setTimeSpec(), toDateTime()
void QwtDateScaleDraw::setWeek0Type ( QwtDate::Week0Type  week0Type)

Sets how to identify the first week of a year.

week0TypeMode how to identify the first week of a year
See also
week0Type has no effect beside for intervals classified as QwtDate::Week.
Qt::TimeSpec QwtDateScaleDraw::timeSpec ( ) const
Time specification used for the tick labels
See also
setTimeSpec(), utcOffset(), toDateTime()
QDateTime QwtDateScaleDraw::toDateTime ( double  value) const

Translate a double value into a QDateTime object.

QDateTime object initialized with timeSpec() and utcOffset().
See also
timeSpec(), utcOffset(), QwtDate::toDateTime()
int QwtDateScaleDraw::utcOffset ( ) const
Offset in seconds from Coordinated Universal Time
The offset has no effect beside for the time specification Qt::OffsetFromUTC.
See also
QDate::setUtcOffset(), setTimeSpec(), toDateTime()
QwtDate::Week0Type QwtDateScaleDraw::week0Type ( ) const
Setting how to identify the first week of a year.
See also