Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
QCPAxisTickerTime Class Reference

Specialized axis ticker for time spans in units of milliseconds to days. More...

#include <qcustomplot.h>

Inheritance diagram for QCPAxisTickerTime:
Inheritance graph
[legend]

Public Types

enum  TimeUnit {
  tuMilliseconds, tuSeconds, tuMinutes, tuHours,
  tuDays
}
 
- Public Types inherited from QCPAxisTicker
enum  TickStepStrategy { tssReadability, tssMeetTickCount }
 

Public Member Functions

int fieldWidth (TimeUnit unit) const
 
 QCPAxisTickerTime ()
 
void setFieldWidth (TimeUnit unit, int width)
 
void setTimeFormat (const QString &format)
 
QString timeFormat () const
 
- Public Member Functions inherited from QCPAxisTicker
virtual void generate (const QCPRange &range, const QLocale &locale, QChar formatChar, int precision, QVector< double > &ticks, QVector< double > *subTicks, QVector< QString > *tickLabels)
 
 QCPAxisTicker ()
 
void setTickCount (int count)
 
void setTickOrigin (double origin)
 
void setTickStepStrategy (TickStepStrategy strategy)
 
int tickCount () const
 
double tickOrigin () const
 
TickStepStrategy tickStepStrategy () const
 
virtual ~QCPAxisTicker ()
 

Protected Member Functions

virtual int getSubTickCount (double tickStep) Q_DECL_OVERRIDE
 
virtual QString getTickLabel (double tick, const QLocale &locale, QChar formatChar, int precision) Q_DECL_OVERRIDE
 
virtual double getTickStep (const QCPRange &range) Q_DECL_OVERRIDE
 
void replaceUnit (QString &text, TimeUnit unit, int value) const
 
- Protected Member Functions inherited from QCPAxisTicker
double cleanMantissa (double input) const
 
virtual QVector< QString > createLabelVector (const QVector< double > &ticks, const QLocale &locale, QChar formatChar, int precision)
 
virtual QVector< double > createSubTickVector (int subTickCount, const QVector< double > &ticks)
 
virtual QVector< double > createTickVector (double tickStep, const QCPRange &range)
 
double getMantissa (double input, double *magnitude=0) const
 
double pickClosest (double target, const QVector< double > &candidates) const
 
void trimTicks (const QCPRange &range, QVector< double > &ticks, bool keepOneOutlier) const
 

Protected Attributes

TimeUnit mBiggestUnit
 
QHash< TimeUnit, intmFieldWidth
 
QHash< TimeUnit, QString > mFormatPattern
 
TimeUnit mSmallestUnit
 
QString mTimeFormat
 
- Protected Attributes inherited from QCPAxisTicker
int mTickCount
 
double mTickOrigin
 
TickStepStrategy mTickStepStrategy
 

Detailed Description

Specialized axis ticker for time spans in units of milliseconds to days.

axisticker-time.png

This QCPAxisTicker subclass generates ticks that corresponds to time intervals.

The format of the time display in the tick labels is controlled with setTimeFormat and setFieldWidth. The time coordinate is in the unit of seconds with respect to the time coordinate zero. Unlike with QCPAxisTickerDateTime, the ticks don't correspond to a specific calendar date and time.

The time can be displayed in milliseconds, seconds, minutes, hours and days. Depending on the largest available unit in the format specified with setTimeFormat, any time spans above will be carried in that largest unit. So for example if the format string is "%m:%s" and a tick at coordinate value 7815 (being 2 hours, 10 minutes and 15 seconds) is created, the resulting tick label will show "130:15" (130 minutes, 15 seconds). If the format string is "%h:%m:%s", the hour unit will be used and the label will thus be "02:10:15". Negative times with respect to the axis zero will carry a leading minus sign.

The ticker can be created and assigned to an axis like this:

Here is an example of a time axis providing time information in days, hours and minutes. Due to the axis range spanning a few days and the wanted tick count (setTickCount), the ticker decided to use tick steps of 12 hours:

axisticker-time2.png

The format string for this example is

Note
If you rather wish to display calendar dates and times, have a look at QCPAxisTickerDateTime instead.

Definition at line 1644 of file qcustomplot.h.

Member Enumeration Documentation

◆ TimeUnit

Defines the logical units in which fractions of time spans can be expressed.

See also
setFieldWidth, setTimeFormat
Enumerator
tuMilliseconds 

Milliseconds, one thousandth of a second (%z in setTimeFormat)

tuSeconds 

Seconds (%s in setTimeFormat)

tuMinutes 

Minutes (%m in setTimeFormat)

tuHours 

Hours (%h in setTimeFormat)

tuDays 

Days (%d in setTimeFormat)

Definition at line 1653 of file qcustomplot.h.

Constructor & Destructor Documentation

◆ QCPAxisTickerTime()

QCPAxisTickerTime::QCPAxisTickerTime ( )

Constructs the ticker and sets reasonable default values. Axis tickers are commonly created managed by a QSharedPointer, which then can be passed to QCPAxis::setTicker.

Definition at line 6196 of file qcustomplot.cpp.

Member Function Documentation

◆ fieldWidth()

int QCPAxisTickerTime::fieldWidth ( TimeUnit  unit) const
inline

Definition at line 1665 of file qcustomplot.h.

◆ getSubTickCount()

int QCPAxisTickerTime::getSubTickCount ( double  tickStep)
protectedvirtual

Reimplemented from QCPAxisTicker.

Definition at line 6329 of file qcustomplot.cpp.

◆ getTickLabel()

QString QCPAxisTickerTime::getTickLabel ( double  tick,
const QLocale &  locale,
QChar  formatChar,
int  precision 
)
protectedvirtual

Reimplemented from QCPAxisTicker.

Definition at line 6355 of file qcustomplot.cpp.

◆ getTickStep()

double QCPAxisTickerTime::getTickStep ( const QCPRange range)
protectedvirtual

Reimplemented from QCPAxisTicker.

Definition at line 6278 of file qcustomplot.cpp.

◆ replaceUnit()

void QCPAxisTickerTime::replaceUnit ( QString &  text,
QCPAxisTickerTime::TimeUnit  unit,
int  value 
) const
protected

Definition at line 6388 of file qcustomplot.cpp.

◆ setFieldWidth()

void QCPAxisTickerTime::setFieldWidth ( QCPAxisTickerTime::TimeUnit  unit,
int  width 
)

Sets the field widh of the specified unit to be width digits, when displayed in the tick label. If the number for the specific unit is shorter than width, it will be padded with an according number of zeros to the left in order to reach the field width.

See also
setTimeFormat

Definition at line 6264 of file qcustomplot.cpp.

◆ setTimeFormat()

void QCPAxisTickerTime::setTimeFormat ( const QString &  format)

Sets the format that will be used to display time in the tick labels.

The available patterns are:

  • %z for milliseconds
  • %s for seconds
  • %m for minutes
  • %h for hours
  • %d for days

The field width (zero padding) can be controlled for each unit with setFieldWidth.

The largest unit that appears in format will carry all the remaining time of a certain tick coordinate, even if it overflows the natural limit of the unit. For example, if %m is the largest unit it might become larger than 59 in order to consume larger time values. If on the other hand %h is available, the minutes will wrap around to zero after 59 and the time will carry to the hour digit.

Definition at line 6233 of file qcustomplot.cpp.

◆ timeFormat()

QString QCPAxisTickerTime::timeFormat ( ) const
inline

Definition at line 1664 of file qcustomplot.h.

Member Data Documentation

◆ mBiggestUnit

TimeUnit QCPAxisTickerTime::mBiggestUnit
protected

Definition at line 1677 of file qcustomplot.h.

◆ mFieldWidth

QHash<TimeUnit, int> QCPAxisTickerTime::mFieldWidth
protected

Definition at line 1674 of file qcustomplot.h.

◆ mFormatPattern

QHash<TimeUnit, QString> QCPAxisTickerTime::mFormatPattern
protected

Definition at line 1678 of file qcustomplot.h.

◆ mSmallestUnit

TimeUnit QCPAxisTickerTime::mSmallestUnit
protected

Definition at line 1677 of file qcustomplot.h.

◆ mTimeFormat

QString QCPAxisTickerTime::mTimeFormat
protected

Definition at line 1673 of file qcustomplot.h.


The documentation for this class was generated from the following files:


control_box_rst
Author(s): Christoph Rösmann
autogenerated on Mon Feb 28 2022 22:08:01