SimCenterCommon
Common functionality used within different SimCenter projects
QCPAxis Class Reference

Manages a single axis inside a QCustomPlot. More...

#include <qcustomplot.h>

Inheritance diagram for QCPAxis:
Collaboration diagram for QCPAxis:

Public Types

enum  AxisType { atLeft = 0x01, atRight = 0x02, atTop = 0x04, atBottom = 0x08 }
 
enum  LabelSide { lsInside, lsOutside }
 
enum  ScaleType { stLinear, stLogarithmic }
 
enum  SelectablePart { spNone = 0, spAxis = 0x001, spTickLabels = 0x002, spAxisLabel = 0x004 }
 

Signals

void rangeChanged (const QCPRange &newRange)
 
void rangeChanged (const QCPRange &newRange, const QCPRange &oldRange)
 
void scaleTypeChanged (QCPAxis::ScaleType scaleType)
 
void selectionChanged (const QCPAxis::SelectableParts &parts)
 
void selectableChanged (const QCPAxis::SelectableParts &parts)
 
- Signals inherited from QCPLayerable
void layerChanged (QCPLayer *newLayer)
 

Public Member Functions

 QCPAxis (QCPAxisRect *parent, AxisType type)
 
virtual ~QCPAxis ()
 
AxisType axisType () const
 
QCPAxisRectaxisRect () const
 
ScaleType scaleType () const
 
const QCPRange range () const
 
bool rangeReversed () const
 
QSharedPointer< QCPAxisTickerticker () const
 
bool ticks () const
 
bool tickLabels () const
 
int tickLabelPadding () const
 
QFont tickLabelFont () const
 
QColor tickLabelColor () const
 
double tickLabelRotation () const
 
LabelSide tickLabelSide () const
 
QString numberFormat () const
 
int numberPrecision () const
 
QVector< double > tickVector () const
 
QVector< QString > tickVectorLabels () const
 
int tickLengthIn () const
 
int tickLengthOut () const
 
bool subTicks () const
 
int subTickLengthIn () const
 
int subTickLengthOut () const
 
QPen basePen () const
 
QPen tickPen () const
 
QPen subTickPen () const
 
QFont labelFont () const
 
QColor labelColor () const
 
QString label () const
 
int labelPadding () const
 
int padding () const
 
int offset () const
 
SelectableParts selectedParts () const
 
SelectableParts selectableParts () const
 
QFont selectedTickLabelFont () const
 
QFont selectedLabelFont () const
 
QColor selectedTickLabelColor () const
 
QColor selectedLabelColor () const
 
QPen selectedBasePen () const
 
QPen selectedTickPen () const
 
QPen selectedSubTickPen () const
 
QCPLineEnding lowerEnding () const
 
QCPLineEnding upperEnding () const
 
QCPGridgrid () const
 
Q_SLOT void setScaleType (QCPAxis::ScaleType type)
 
Q_SLOT void setRange (const QCPRange &range)
 
void setRange (double lower, double upper)
 
void setRange (double position, double size, Qt::AlignmentFlag alignment)
 
void setRangeLower (double lower)
 
void setRangeUpper (double upper)
 
void setRangeReversed (bool reversed)
 
void setTicker (QSharedPointer< QCPAxisTicker > ticker)
 
void setTicks (bool show)
 
void setTickLabels (bool show)
 
void setTickLabelPadding (int padding)
 
void setTickLabelFont (const QFont &font)
 
void setTickLabelColor (const QColor &color)
 
void setTickLabelRotation (double degrees)
 
void setTickLabelSide (LabelSide side)
 
void setNumberFormat (const QString &formatCode)
 
void setNumberPrecision (int precision)
 
void setTickLength (int inside, int outside=0)
 
void setTickLengthIn (int inside)
 
void setTickLengthOut (int outside)
 
void setSubTicks (bool show)
 
void setSubTickLength (int inside, int outside=0)
 
void setSubTickLengthIn (int inside)
 
void setSubTickLengthOut (int outside)
 
void setBasePen (const QPen &pen)
 
void setTickPen (const QPen &pen)
 
void setSubTickPen (const QPen &pen)
 
void setLabelFont (const QFont &font)
 
void setLabelColor (const QColor &color)
 
void setLabel (const QString &str)
 
void setLabelPadding (int padding)
 
void setPadding (int padding)
 
void setOffset (int offset)
 
void setSelectedTickLabelFont (const QFont &font)
 
void setSelectedLabelFont (const QFont &font)
 
void setSelectedTickLabelColor (const QColor &color)
 
void setSelectedLabelColor (const QColor &color)
 
void setSelectedBasePen (const QPen &pen)
 
void setSelectedTickPen (const QPen &pen)
 
void setSelectedSubTickPen (const QPen &pen)
 
Q_SLOT void setSelectableParts (const QCPAxis::SelectableParts &selectableParts)
 
Q_SLOT void setSelectedParts (const QCPAxis::SelectableParts &selectedParts)
 
void setLowerEnding (const QCPLineEnding &ending)
 
void setUpperEnding (const QCPLineEnding &ending)
 
virtual double selectTest (const QPointF &pos, bool onlySelectable, QVariant *details=0) const Q_DECL_OVERRIDE
 
Qt::Orientation orientation () const
 
int pixelOrientation () const
 
void moveRange (double diff)
 
void scaleRange (double factor)
 
void scaleRange (double factor, double center)
 
void setScaleRatio (const QCPAxis *otherAxis, double ratio=1.0)
 
void rescale (bool onlyVisiblePlottables=false)
 
double pixelToCoord (double value) const
 
double coordToPixel (double value) const
 
SelectablePart getPartAt (const QPointF &pos) const
 
QList< QCPAbstractPlottable * > plottables () const
 
QList< QCPGraph * > graphs () const
 
QList< QCPAbstractItem * > items () const
 
- Public Member Functions inherited from QCPLayerable
 QCPLayerable (QCustomPlot *plot, QString targetLayer=QString(), QCPLayerable *parentLayerable=0)
 
virtual ~QCPLayerable ()
 
bool visible () const
 
QCustomPlotparentPlot () const
 
QCPLayerableparentLayerable () const
 
QCPLayerlayer () const
 
bool antialiased () const
 
void setVisible (bool on)
 
Q_SLOT bool setLayer (QCPLayer *layer)
 
bool setLayer (const QString &layerName)
 
void setAntialiased (bool enabled)
 
bool realVisibility () const
 

Static Public Member Functions

static AxisType marginSideToAxisType (QCP::MarginSide side)
 
static Qt::Orientation orientation (AxisType type)
 
static AxisType opposite (AxisType type)
 

Protected Member Functions

virtual int calculateMargin ()
 
virtual void applyDefaultAntialiasingHint (QCPPainter *painter) const Q_DECL_OVERRIDE
 
virtual void draw (QCPPainter *painter) Q_DECL_OVERRIDE
 
virtual QCP::Interaction selectionCategory () const Q_DECL_OVERRIDE
 
virtual void selectEvent (QMouseEvent *event, bool additive, const QVariant &details, bool *selectionStateChanged) Q_DECL_OVERRIDE
 
virtual void deselectEvent (bool *selectionStateChanged) Q_DECL_OVERRIDE
 
void setupTickVectors ()
 
QPen getBasePen () const
 
QPen getTickPen () const
 
QPen getSubTickPen () const
 
QFont getTickLabelFont () const
 
QFont getLabelFont () const
 
QColor getTickLabelColor () const
 
QColor getLabelColor () const
 
- Protected Member Functions inherited from QCPLayerable
virtual void parentPlotInitialized (QCustomPlot *parentPlot)
 
virtual QRect clipRect () const
 
virtual void mousePressEvent (QMouseEvent *event, const QVariant &details)
 
virtual void mouseMoveEvent (QMouseEvent *event, const QPointF &startPos)
 
virtual void mouseReleaseEvent (QMouseEvent *event, const QPointF &startPos)
 
virtual void mouseDoubleClickEvent (QMouseEvent *event, const QVariant &details)
 
virtual void wheelEvent (QWheelEvent *event)
 
void initializeParentPlot (QCustomPlot *parentPlot)
 
void setParentLayerable (QCPLayerable *parentLayerable)
 
bool moveToLayer (QCPLayer *layer, bool prepend)
 
void applyAntialiasingHint (QCPPainter *painter, bool localAntialiased, QCP::AntialiasedElement overrideElement) const
 

Protected Attributes

AxisType mAxisType
 
QCPAxisRectmAxisRect
 
int mPadding
 
Qt::Orientation mOrientation
 
SelectableParts mSelectableParts
 
SelectableParts mSelectedParts
 
QPen mBasePen
 
QPen mSelectedBasePen
 
QString mLabel
 
QFont mLabelFont
 
QFont mSelectedLabelFont
 
QColor mLabelColor
 
QColor mSelectedLabelColor
 
bool mTickLabels
 
QFont mTickLabelFont
 
QFont mSelectedTickLabelFont
 
QColor mTickLabelColor
 
QColor mSelectedTickLabelColor
 
int mNumberPrecision
 
QLatin1Char mNumberFormatChar
 
bool mNumberBeautifulPowers
 
bool mTicks
 
bool mSubTicks
 
QPen mTickPen
 
QPen mSelectedTickPen
 
QPen mSubTickPen
 
QPen mSelectedSubTickPen
 
QCPRange mRange
 
bool mRangeReversed
 
ScaleType mScaleType
 
QCPGridmGrid
 
QCPAxisPainterPrivatemAxisPainter
 
QSharedPointer< QCPAxisTickermTicker
 
QVector< double > mTickVector
 
QVector< QString > mTickVectorLabels
 
QVector< double > mSubTickVector
 
bool mCachedMarginValid
 
int mCachedMargin
 
- Protected Attributes inherited from QCPLayerable
bool mVisible
 
QCustomPlotmParentPlot
 
QPointer< QCPLayerablemParentLayerable
 
QCPLayermLayer
 
bool mAntialiased
 

Friends

class QCustomPlot
 
class QCPGrid
 
class QCPAxisRect
 

Detailed Description

Manages a single axis inside a QCustomPlot.

Usually doesn't need to be instantiated externally. Access QCustomPlot's default four axes via QCustomPlot::xAxis (bottom), QCustomPlot::yAxis (left), QCustomPlot::xAxis2 (top) and QCustomPlot::yAxis2 (right).

Axes are always part of an axis rect, see QCPAxisRect.

AxisNamesOverview.png
Naming convention of axis parts


AxisRectSpacingOverview.png
Overview of the spacings and paddings that define the geometry of an axis. The dashed gray line on the left represents the QCustomPlot widget border.

Each axis holds an instance of QCPAxisTicker which is used to generate the tick coordinates and tick labels. You can access the currently installed ticker or set a new one (possibly one of the specialized subclasses, or your own subclass) via setTicker. For details, see the documentation of QCPAxisTicker.

Definition at line 1889 of file qcustomplot.h.

Member Enumeration Documentation

Defines at which side of the axis rect the axis will appear. This also affects how the tick marks are drawn, on which side the labels are placed etc.

Enumerator
atLeft 

0x01 Axis is vertical and on the left side of the axis rect

atRight 

0x02 Axis is vertical and on the right side of the axis rect

atTop 

0x04 Axis is horizontal and on the top side of the axis rect

atBottom 

0x08 Axis is horizontal and on the bottom side of the axis rect

Definition at line 1942 of file qcustomplot.h.

Defines on which side of the axis the tick labels (numbers) shall appear.

See also
setTickLabelSide
Enumerator
lsInside 

Tick labels will be displayed inside the axis rect and clipped to the inner axis rect.

lsOutside 

Tick labels will be displayed outside the axis rect.

Definition at line 1955 of file qcustomplot.h.

Defines the scale of an axis.

See also
setScaleType
Enumerator
stLinear 

Linear scaling.

stLogarithmic 

Logarithmic scaling with correspondingly transformed axis coordinates (possibly also setTicker to a QCPAxisTickerLog instance).

Definition at line 1963 of file qcustomplot.h.

Defines the selectable parts of an axis.

See also
setSelectableParts, setSelectedParts
Enumerator
spNone 

None of the selectable parts.

spAxis 

The axis backbone and tick marks.

spTickLabels 

Tick labels (numbers) of this axis (as a whole, not individually)

spAxisLabel 

The axis label.

Definition at line 1971 of file qcustomplot.h.

Constructor & Destructor Documentation

QCPAxis::QCPAxis ( QCPAxisRect parent,
AxisType  type 
)
explicit

Constructs an Axis instance of Type type for the axis rect parent.

Usually it isn't necessary to instantiate axes directly, because you can let QCustomPlot create them for you with QCPAxisRect::addAxis. If you want to use own QCPAxis-subclasses however, create them manually and then inject them also via QCPAxisRect::addAxis.

Definition at line 7382 of file qcustomplot.cpp.

QCPAxis::~QCPAxis ( )
virtual

Definition at line 7450 of file qcustomplot.cpp.

Member Function Documentation

void QCPAxis::applyDefaultAntialiasingHint ( QCPPainter painter) const
protectedvirtual

Implements QCPLayerable.

Definition at line 8697 of file qcustomplot.cpp.

QCPAxisRect* QCPAxis::axisRect ( ) const
inline

Definition at line 1985 of file qcustomplot.h.

AxisType QCPAxis::axisType ( void  ) const
inline

Definition at line 1984 of file qcustomplot.h.

QPen QCPAxis::basePen ( ) const
inline

Definition at line 2006 of file qcustomplot.h.

int QCPAxis::calculateMargin ( )
protectedvirtual

Definition at line 8858 of file qcustomplot.cpp.

double QCPAxis::coordToPixel ( double  value) const

Transforms value, in coordinates of the axis, to pixel coordinates of the QCustomPlot widget.

Definition at line 8476 of file qcustomplot.cpp.

void QCPAxis::deselectEvent ( bool *  selectionStateChanged)
protectedvirtual

Reimplemented from QCPLayerable.

Definition at line 8674 of file qcustomplot.cpp.

void QCPAxis::draw ( QCPPainter painter)
protectedvirtual

Implements QCPLayerable.

Definition at line 8708 of file qcustomplot.cpp.

QPen QCPAxis::getBasePen ( ) const
protected

Definition at line 8779 of file qcustomplot.cpp.

QColor QCPAxis::getLabelColor ( ) const
protected

Definition at line 8839 of file qcustomplot.cpp.

QFont QCPAxis::getLabelFont ( ) const
protected

Definition at line 8819 of file qcustomplot.cpp.

QCPAxis::SelectablePart QCPAxis::getPartAt ( const QPointF &  pos) const

Returns the part of the axis that is hit by pos (in pixels). The return value of this function is independent of the user-selectable parts defined with setSelectableParts. Further, this function does not change the current selection state of the axis.

If the axis is not visible (setVisible), this function always returns spNone.

See also
setSelectedParts, setSelectableParts, QCustomPlot::setInteractions

Definition at line 8534 of file qcustomplot.cpp.

QPen QCPAxis::getSubTickPen ( ) const
protected

Definition at line 8799 of file qcustomplot.cpp.

QColor QCPAxis::getTickLabelColor ( ) const
protected

Definition at line 8829 of file qcustomplot.cpp.

QFont QCPAxis::getTickLabelFont ( ) const
protected

Definition at line 8809 of file qcustomplot.cpp.

QPen QCPAxis::getTickPen ( ) const
protected

Definition at line 8789 of file qcustomplot.cpp.

QList< QCPGraph * > QCPAxis::graphs ( ) const

Returns a list of all the graphs that have this axis as key or value axis.

See also
plottables, items

Definition at line 8587 of file qcustomplot.cpp.

QCPGrid * QCPAxis::grid ( ) const
inline

Returns the QCPGrid instance belonging to this axis. Access it to set details about the way the grid is displayed.

Definition at line 2026 of file qcustomplot.h.

QList< QCPAbstractItem * > QCPAxis::items ( ) const

Returns a list of all the items that are associated with this axis. An item is considered associated with an axis if at least one of its positions uses the axis as key or value axis.

See also
plottables, graphs

Definition at line 8606 of file qcustomplot.cpp.

QString QCPAxis::label ( ) const
inline

Definition at line 2011 of file qcustomplot.h.

QColor QCPAxis::labelColor ( ) const
inline

Definition at line 2010 of file qcustomplot.h.

QFont QCPAxis::labelFont ( ) const
inline

Definition at line 2009 of file qcustomplot.h.

int QCPAxis::labelPadding ( ) const

Definition at line 7513 of file qcustomplot.cpp.

QCPLineEnding QCPAxis::lowerEnding ( ) const

Definition at line 7525 of file qcustomplot.cpp.

QCPAxis::AxisType QCPAxis::marginSideToAxisType ( QCP::MarginSide  side)
static

Transforms a margin side to the logically corresponding axis type. (QCP::msLeft to QCPAxis::atLeft, QCP::msRight to QCPAxis::atRight, etc.)

Definition at line 8630 of file qcustomplot.cpp.

void QCPAxis::moveRange ( double  diff)

If the scale type (setScaleType) is stLinear, diff is added to the lower and upper bounds of the range. The range is simply moved by diff.

If the scale type is stLogarithmic, the range bounds are multiplied by diff. This corresponds to an apparent "linear" move in logarithmic scaling by a distance of log(diff).

Definition at line 8287 of file qcustomplot.cpp.

QString QCPAxis::numberFormat ( ) const

Definition at line 7475 of file qcustomplot.cpp.

int QCPAxis::numberPrecision ( ) const
inline

Definition at line 1998 of file qcustomplot.h.

int QCPAxis::offset ( ) const

Definition at line 7519 of file qcustomplot.cpp.

QCPAxis::AxisType QCPAxis::opposite ( QCPAxis::AxisType  type)
static

Returns the axis type that describes the opposite axis of an axis with the specified type.

Definition at line 8647 of file qcustomplot.cpp.

Qt::Orientation QCPAxis::orientation ( ) const
inline

Returns the orientation of this axis. The axis orientation (horizontal or vertical) is deduced from the axis type (left, top, right or bottom).

See also
orientation(AxisType type), pixelOrientation

Definition at line 2078 of file qcustomplot.h.

static Qt::Orientation QCPAxis::orientation ( AxisType  type)
inlinestatic

Returns the orientation of the specified axis type

See also
orientation(), pixelOrientation

Definition at line 2093 of file qcustomplot.h.

int QCPAxis::padding ( ) const
inline

Definition at line 2013 of file qcustomplot.h.

int QCPAxis::pixelOrientation ( ) const
inline

Returns which direction points towards higher coordinate values/keys, in pixel space.

This method returns either 1 or -1. If it returns 1, then going in the positive direction along the orientation of the axis in pixels corresponds to going from lower to higher axis coordinates. On the other hand, if this method returns -1, going to smaller pixel values corresponds to going from lower to higher axis coordinates.

For example, this is useful to easily shift axis coordinates by a certain amount given in pixels, without having to care about reversed or vertically aligned axes:

double newKey = keyAxis->pixelToCoord(keyAxis->coordToPixel(oldKey)+10*keyAxis->pixelOrientation());

newKey will then contain a key that is ten pixels towards higher keys, starting from oldKey.

Definition at line 2079 of file qcustomplot.h.

double QCPAxis::pixelToCoord ( double  value) const

Transforms value, in pixel coordinates of the QCustomPlot widget, to axis coordinates.

Definition at line 8438 of file qcustomplot.cpp.

QList< QCPAbstractPlottable * > QCPAxis::plottables ( ) const

Returns a list of all the plottables that have this axis as key or value axis.

If you are only interested in plottables of type QCPGraph, see graphs.

See also
graphs, items

Definition at line 8569 of file qcustomplot.cpp.

const QCPRange QCPAxis::range ( ) const
inline

Definition at line 1987 of file qcustomplot.h.

void QCPAxis::rangeChanged ( const QCPRange newRange)
signal

This signal is emitted when the range of this axis has changed. You can connect it to the setRange slot of another axis to communicate the new range to the other axis, in order for it to be synchronized.

You may also manipulate/correct the range with setRange in a slot connected to this signal. This is useful if for example a maximum range span shall not be exceeded, or if the lower/upper range shouldn't go beyond certain values (see QCPRange::bounded). For example, the following slot would limit the x axis to ranges between 0 and 10:

customPlot->xAxis->setRange(newRange.bounded(0, 10))
void QCPAxis::rangeChanged ( const QCPRange newRange,
const QCPRange oldRange 
)
signal

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Additionally to the new range, this signal also provides the previous range held by the axis as oldRange.

bool QCPAxis::rangeReversed ( ) const
inline

Definition at line 1988 of file qcustomplot.h.

void QCPAxis::rescale ( bool  onlyVisiblePlottables = false)

Changes the axis range such that all plottables associated with this axis are fully visible in that dimension.

See also
QCPAbstractPlottable::rescaleAxes, QCustomPlot::rescaleAxes

Definition at line 8389 of file qcustomplot.cpp.

void QCPAxis::scaleRange ( double  factor)

Scales the range of this axis by factor around the center of the current axis range. For example, if factor is 2.0, then the axis range will double its size, and the point at the axis range center won't have changed its position in the QCustomPlot widget (i.e. coordinates around the center will have moved symmetrically closer).

If you wish to scale around a different coordinate than the current axis range center, use the overload scaleRange(double factor, double center).

Definition at line 8312 of file qcustomplot.cpp.

void QCPAxis::scaleRange ( double  factor,
double  center 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Scales the range of this axis by factor around the coordinate center. For example, if factor is 2.0, center is 1.0, then the axis range will double its size, and the point at coordinate 1.0 won't have changed its position in the QCustomPlot widget (i.e. coordinates around 1.0 will have moved symmetrically closer to 1.0).

See also
scaleRange(double factor)

Definition at line 8326 of file qcustomplot.cpp.

ScaleType QCPAxis::scaleType ( ) const
inline

Definition at line 1986 of file qcustomplot.h.

void QCPAxis::scaleTypeChanged ( QCPAxis::ScaleType  scaleType)
signal

This signal is emitted when the scale type changes, by calls to setScaleType

void QCPAxis::selectableChanged ( const QCPAxis::SelectableParts &  parts)
signal

This signal is emitted when the selectability changes, by calls to setSelectableParts

SelectableParts QCPAxis::selectableParts ( ) const
inline

Definition at line 2016 of file qcustomplot.h.

QPen QCPAxis::selectedBasePen ( ) const
inline

Definition at line 2021 of file qcustomplot.h.

QColor QCPAxis::selectedLabelColor ( ) const
inline

Definition at line 2020 of file qcustomplot.h.

QFont QCPAxis::selectedLabelFont ( ) const
inline

Definition at line 2018 of file qcustomplot.h.

SelectableParts QCPAxis::selectedParts ( ) const
inline

Definition at line 2015 of file qcustomplot.h.

QPen QCPAxis::selectedSubTickPen ( ) const
inline

Definition at line 2023 of file qcustomplot.h.

QColor QCPAxis::selectedTickLabelColor ( ) const
inline

Definition at line 2019 of file qcustomplot.h.

QFont QCPAxis::selectedTickLabelFont ( ) const
inline

Definition at line 2017 of file qcustomplot.h.

QPen QCPAxis::selectedTickPen ( ) const
inline

Definition at line 2022 of file qcustomplot.h.

void QCPAxis::selectEvent ( QMouseEvent *  event,
bool  additive,
const QVariant &  details,
bool *  selectionStateChanged 
)
protectedvirtual

Reimplemented from QCPLayerable.

Definition at line 8660 of file qcustomplot.cpp.

QCP::Interaction QCPAxis::selectionCategory ( ) const
protectedvirtual

Reimplemented from QCPLayerable.

Definition at line 8902 of file qcustomplot.cpp.

void QCPAxis::selectionChanged ( const QCPAxis::SelectableParts &  parts)
signal

This signal is emitted when the selection state of this axis has changed, either by user interaction or by a direct call to setSelectedParts.

double QCPAxis::selectTest ( const QPointF &  pos,
bool  onlySelectable,
QVariant *  details = 0 
) const
virtual

This function is used to decide whether a click hits a layerable object or not.

pos is a point in pixel coordinates on the QCustomPlot surface. This function returns the shortest pixel distance of this point to the object. If the object is either invisible or the distance couldn't be determined, -1.0 is returned. Further, if onlySelectable is true and the object is not selectable, -1.0 is returned, too.

If the object is represented not by single lines but by an area like a QCPItemText or the bars of a QCPBars plottable, a click inside the area should also be considered a hit. In these cases this function thus returns a constant value greater zero but still below the parent plot's selection tolerance. (typically the selectionTolerance multiplied by 0.99).

Providing a constant value for area objects allows selecting line objects even when they are obscured by such area objects, by clicking close to the lines (i.e. closer than 0.99*selectionTolerance).

The actual setting of the selection state is not done by this function. This is handled by the parent QCustomPlot when the mouseReleaseEvent occurs, and the finally selected object is notified via the selectEvent/deselectEvent methods.

details is an optional output parameter. Every layerable subclass may place any information in details. This information will be passed to selectEvent when the parent QCustomPlot decides on the basis of this selectTest call, that the object was successfully selected. The subsequent call to selectEvent will carry the details. This is useful for multi-part objects (like QCPAxis). This way, a possibly complex calculation to decide which part was clicked is only done once in selectTest. The result (i.e. the actually clicked part) can then be placed in details. So in the subsequent selectEvent, the decision which part was selected doesn't have to be done a second time for a single selection operation.

You may pass 0 as details to indicate that you are not interested in those selection details.

See also
selectEvent, deselectEvent, mousePressEvent, wheelEvent, QCustomPlot::setInteractions

Reimplemented from QCPLayerable.

Definition at line 8550 of file qcustomplot.cpp.

void QCPAxis::setBasePen ( const QPen &  pen)

Sets the pen, the axis base line is drawn with.

See also
setTickPen, setSubTickPen

Definition at line 8064 of file qcustomplot.cpp.

void QCPAxis::setLabel ( const QString &  str)

Sets the text of the axis label that will be shown below/above or next to the axis, depending on its orientation. To disable axis labels, pass an empty string as str.

Definition at line 8117 of file qcustomplot.cpp.

void QCPAxis::setLabelColor ( const QColor &  color)

Sets the color of the axis label.

See also
setLabelFont

Definition at line 8108 of file qcustomplot.cpp.

void QCPAxis::setLabelFont ( const QFont &  font)

Sets the font of the axis label.

See also
setLabelColor

Definition at line 8094 of file qcustomplot.cpp.

void QCPAxis::setLabelPadding ( int  padding)

Sets the distance between the tick labels and the axis label.

See also
setTickLabelPadding, setPadding

Definition at line 8131 of file qcustomplot.cpp.

void QCPAxis::setLowerEnding ( const QCPLineEnding ending)

Sets the style for the lower axis ending. See the documentation of QCPLineEnding for available styles.

For horizontal axes, this method refers to the left ending, for vertical axes the bottom ending. Note that this meaning does not change when the axis range is reversed with setRangeReversed.

See also
setUpperEnding

Definition at line 8260 of file qcustomplot.cpp.

void QCPAxis::setNumberFormat ( const QString &  formatCode)

Sets the number format for the numbers in tick labels. This formatCode is an extended version of the format code used e.g. by QString::number() and QLocale::toString(). For reference about that, see the "Argument Formats" section in the detailed description of the QString class.

formatCode is a string of one, two or three characters. The first character is identical to the normal format code used by Qt. In short, this means: 'e'/'E' scientific format, 'f' fixed format, 'g'/'G' scientific or fixed, whichever is shorter.

The second and third characters are optional and specific to QCustomPlot:
If the first char was 'e' or 'g', numbers are/might be displayed in the scientific format, e.g. "5.5e9", which is ugly in a plot. So when the second char of formatCode is set to 'b' (for "beautiful"), those exponential numbers are formatted in a more natural way, i.e. "5.5 [multiplication sign] 10 [superscript] 9". By default, the multiplication sign is a centered dot. If instead a cross should be shown (as is usual in the USA), the third char of formatCode can be set to 'c'. The inserted multiplication signs are the UTF-8 characters 215 (0xD7) for the cross and 183 (0xB7) for the dot.

Examples for formatCode:

  • g normal format code behaviour. If number is small, fixed format is used, if number is large, normal scientific format is used
  • gb If number is small, fixed format is used, if number is large, scientific format is used with beautifully typeset decimal powers and a dot as multiplication sign
  • ebc All numbers are in scientific format with beautifully typeset decimal power and a cross as multiplication sign
  • fb illegal format code, since fixed format doesn't support (or need) beautifully typeset decimal powers. Format code will be reduced to 'f'.
  • hello illegal format code, since first char is not 'e', 'E', 'f', 'g' or 'G'. Current format code will not be changed.

Definition at line 7886 of file qcustomplot.cpp.

void QCPAxis::setNumberPrecision ( int  precision)

Sets the precision of the tick label numbers. See QLocale::toString(double i, char f, int prec) for details. The effect of precisions are most notably for number Formats starting with 'e', see setNumberFormat

Definition at line 7946 of file qcustomplot.cpp.

void QCPAxis::setOffset ( int  offset)

Sets the offset the axis has to its axis rect side.

If an axis rect side has multiple axes and automatic margin calculation is enabled for that side, only the offset of the inner most axis has meaning (even if it is set to be invisible). The offset of the other, outer axes is controlled automatically, to place them at appropriate positions.

Definition at line 8167 of file qcustomplot.cpp.

void QCPAxis::setPadding ( int  padding)

Sets the padding of the axis.

When QCPAxisRect::setAutoMargins is enabled, the padding is the additional outer most space, that is left blank.

The axis padding has no meaning if QCPAxisRect::setAutoMargins is disabled.

See also
setLabelPadding, setTickLabelPadding

Definition at line 8150 of file qcustomplot.cpp.

void QCPAxis::setRange ( const QCPRange range)

Sets the range of the axis.

This slot may be connected with the rangeChanged signal of another axis so this axis is always synchronized with the other axis range, when it changes.

To invert the direction of an axis, use setRangeReversed.

Definition at line 7566 of file qcustomplot.cpp.

void QCPAxis::setRange ( double  lower,
double  upper 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Sets the lower and upper bound of the axis range.

To invert the direction of an axis, use setRangeReversed.

There is also a slot to set a range, see setRange(const QCPRange &range).

Definition at line 7636 of file qcustomplot.cpp.

void QCPAxis::setRange ( double  position,
double  size,
Qt::AlignmentFlag  alignment 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Sets the range of the axis.

The position coordinate indicates together with the alignment parameter, where the new range will be positioned. size defines the size of the new axis range. alignment may be Qt::AlignLeft, Qt::AlignRight or Qt::AlignCenter. This will cause the left border, right border, or center of the range to be aligned with position. Any other values of alignment will default to Qt::AlignCenter.

Definition at line 7667 of file qcustomplot.cpp.

void QCPAxis::setRangeLower ( double  lower)

Sets the lower bound of the axis range. The upper bound is not changed.

See also
setRange

Definition at line 7681 of file qcustomplot.cpp.

void QCPAxis::setRangeReversed ( bool  reversed)

Sets whether the axis range (direction) is displayed reversed. Normally, the values on horizontal axes increase left to right, on vertical axes bottom to top. When reversed is set to true, the direction of increasing values is inverted.

Note that the range and data interface stays the same for reversed axes, e.g. the lower part of the setRange interface will still reference the mathematically smaller number than the upper part.

Definition at line 7730 of file qcustomplot.cpp.

void QCPAxis::setRangeUpper ( double  upper)

Sets the upper bound of the axis range. The lower bound is not changed.

See also
setRange

Definition at line 7703 of file qcustomplot.cpp.

void QCPAxis::setScaleRatio ( const QCPAxis otherAxis,
double  ratio = 1.0 
)

Scales the range of this axis to have a certain scale ratio to otherAxis. The scaling will be done around the center of the current axis range.

For example, if ratio is 1, this axis is the yAxis and otherAxis is xAxis, graphs plotted with those axes will appear in a 1:1 aspect ratio, independent of the aspect ratio the axis rect has.

This is an operation that changes the range of this axis once, it doesn't fix the scale ratio indefinitely. Note that calling this function in the constructor of the QCustomPlot's parent won't have the desired effect, since the widget dimensions aren't defined yet, and a resizeEvent will follow.

Definition at line 8365 of file qcustomplot.cpp.

void QCPAxis::setScaleType ( QCPAxis::ScaleType  type)

Sets whether the axis uses a linear scale or a logarithmic scale.

Note that this method controls the coordinate transformation. You will likely also want to use a logarithmic tick spacing and labeling, which can be achieved by setting an instance of QCPAxisTickerLog via setTicker. See the documentation of QCPAxisTickerLog about the details of logarithmic axis tick creation.

setNumberPrecision

Definition at line 7546 of file qcustomplot.cpp.

void QCPAxis::setSelectableParts ( const QCPAxis::SelectableParts &  selectableParts)

Sets whether the user can (de-)select the parts in selectable by clicking on the QCustomPlot surface. (When QCustomPlot::setInteractions contains iSelectAxes.)

However, even when selectable is set to a value not allowing the selection of a specific part, it is still possible to set the selection of this part manually, by calling setSelectedParts directly.

See also
SelectablePart, setSelectedParts

Definition at line 7594 of file qcustomplot.cpp.

void QCPAxis::setSelectedBasePen ( const QPen &  pen)

Sets the pen that is used to draw the axis base line when selected.

See also
setBasePen, setSelectableParts, setSelectedParts, QCustomPlot::setInteractions

Definition at line 8225 of file qcustomplot.cpp.

void QCPAxis::setSelectedLabelColor ( const QColor &  color)

Sets the color that is used for the axis label when it is selected.

See also
setLabelColor, setSelectableParts, setSelectedParts, QCustomPlot::setInteractions

Definition at line 8215 of file qcustomplot.cpp.

void QCPAxis::setSelectedLabelFont ( const QFont &  font)

Sets the font that is used for the axis label when it is selected.

See also
setLabelFont, setSelectableParts, setSelectedParts, QCustomPlot::setInteractions

Definition at line 8191 of file qcustomplot.cpp.

void QCPAxis::setSelectedParts ( const QCPAxis::SelectableParts &  selectedParts)

Sets the selected state of the respective axis parts described by SelectablePart. When a part is selected, it uses a different pen/font.

The entire selection mechanism for axes is handled automatically when QCustomPlot::setInteractions contains iSelectAxes. You only need to call this function when you wish to change the selection state manually.

This function can change the selection state of a part, independent of the setSelectableParts setting.

emits the selectionChanged signal when selected is different from the previous selection state.

See also
SelectablePart, setSelectableParts, selectTest, setSelectedBasePen, setSelectedTickPen, setSelectedSubTickPen, setSelectedTickLabelFont, setSelectedLabelFont, setSelectedTickLabelColor, setSelectedLabelColor

Definition at line 7618 of file qcustomplot.cpp.

void QCPAxis::setSelectedSubTickPen ( const QPen &  pen)

Sets the pen that is used to draw the subticks when selected.

See also
setSubTickPen, setSelectableParts, setSelectedParts, QCustomPlot::setInteractions

Definition at line 8245 of file qcustomplot.cpp.

void QCPAxis::setSelectedTickLabelColor ( const QColor &  color)

Sets the color that is used for tick labels when they are selected.

See also
setTickLabelColor, setSelectableParts, setSelectedParts, QCustomPlot::setInteractions

Definition at line 8202 of file qcustomplot.cpp.

void QCPAxis::setSelectedTickLabelFont ( const QFont &  font)

Sets the font that is used for tick labels when they are selected.

See also
setTickLabelFont, setSelectableParts, setSelectedParts, QCustomPlot::setInteractions

Definition at line 8177 of file qcustomplot.cpp.

void QCPAxis::setSelectedTickPen ( const QPen &  pen)

Sets the pen that is used to draw the (major) ticks when selected.

See also
setTickPen, setSelectableParts, setSelectedParts, QCustomPlot::setInteractions

Definition at line 8235 of file qcustomplot.cpp.

void QCPAxis::setSubTickLength ( int  inside,
int  outside = 0 
)

Sets the length of the subticks in pixels. inside is the length the subticks will reach inside the plot and outside is the length they will reach outside the plot. If outside is greater than zero, the tick labels and axis label will increase their distance to the axis accordingly, so they won't collide with the ticks.

See also
setTickLength, setSubTickLengthIn, setSubTickLengthOut

Definition at line 8023 of file qcustomplot.cpp.

void QCPAxis::setSubTickLengthIn ( int  inside)

Sets the length of the inward subticks in pixels. inside is the length the subticks will reach inside the plot.

See also
setSubTickLengthOut, setSubTickLength, setTickLength

Definition at line 8035 of file qcustomplot.cpp.

void QCPAxis::setSubTickLengthOut ( int  outside)

Sets the length of the outward subticks in pixels. outside is the length the subticks will reach outside the plot. If outside is greater than zero, the tick labels will increase their distance to the axis accordingly, so they won't collide with the ticks.

See also
setSubTickLengthIn, setSubTickLength, setTickLength

Definition at line 8050 of file qcustomplot.cpp.

void QCPAxis::setSubTickPen ( const QPen &  pen)

Sets the pen, subtick marks will be drawn with.

See also
setSubTickCount, setSubTickLength, setBasePen

Definition at line 8084 of file qcustomplot.cpp.

void QCPAxis::setSubTicks ( bool  show)

Sets whether sub tick marks are displayed.

Sub ticks are only potentially visible if (major) ticks are also visible (see setTicks)

See also
setTicks

Definition at line 8006 of file qcustomplot.cpp.

void QCPAxis::setTicker ( QSharedPointer< QCPAxisTicker ticker)

The axis ticker is responsible for generating the tick positions and tick labels. See the documentation of QCPAxisTicker for details on how to work with axis tickers.

You can change the tick positioning/labeling behaviour of this axis by setting a different QCPAxisTicker subclass using this method. If you only wish to modify the currently installed axis ticker, access it via ticker.

Since the ticker is stored in the axis as a shared pointer, multiple axes may share the same axis ticker simply by passing the same shared pointer to multiple axes.

See also
ticker

Definition at line 7748 of file qcustomplot.cpp.

void QCPAxis::setTickLabelColor ( const QColor &  color)

Sets the color of the tick labels.

See also
setTickLabels, setTickLabelFont

Definition at line 7820 of file qcustomplot.cpp.

void QCPAxis::setTickLabelFont ( const QFont &  font)

Sets the font of the tick labels.

See also
setTickLabels, setTickLabelColor

Definition at line 7806 of file qcustomplot.cpp.

void QCPAxis::setTickLabelPadding ( int  padding)

Sets the distance between the axis base line (including any outward ticks) and the tick labels.

See also
setLabelPadding, setPadding

Definition at line 7792 of file qcustomplot.cpp.

void QCPAxis::setTickLabelRotation ( double  degrees)

Sets the rotation of the tick labels. If degrees is zero, the labels are drawn normally. Else, the tick labels are drawn rotated by degrees clockwise. The specified angle is bound to values from -90 to 90 degrees.

If degrees is exactly -90, 0 or 90, the tick labels are centered on the tick coordinate. For other angles, the label is drawn with an offset such that it seems to point toward or away from the tick mark.

Definition at line 7834 of file qcustomplot.cpp.

void QCPAxis::setTickLabels ( bool  show)

Sets whether tick labels are displayed. Tick labels are the numbers drawn next to tick marks.

Definition at line 7777 of file qcustomplot.cpp.

void QCPAxis::setTickLabelSide ( LabelSide  side)

Sets whether the tick labels (numbers) shall appear inside or outside the axis rect.

The usual and default setting is lsOutside. Very compact plots sometimes require tick labels to be inside the axis rect, to save space. If side is set to lsInside, the tick labels appear on the inside are additionally clipped to the axis rect.

Definition at line 7850 of file qcustomplot.cpp.

void QCPAxis::setTickLength ( int  inside,
int  outside = 0 
)

Sets the length of the ticks in pixels. inside is the length the ticks will reach inside the plot and outside is the length they will reach outside the plot. If outside is greater than zero, the tick labels and axis label will increase their distance to the axis accordingly, so they won't collide with the ticks.

See also
setSubTickLength, setTickLengthIn, setTickLengthOut

Definition at line 7963 of file qcustomplot.cpp.

void QCPAxis::setTickLengthIn ( int  inside)

Sets the length of the inward ticks in pixels. inside is the length the ticks will reach inside the plot.

See also
setTickLengthOut, setTickLength, setSubTickLength

Definition at line 7975 of file qcustomplot.cpp.

void QCPAxis::setTickLengthOut ( int  outside)

Sets the length of the outward ticks in pixels. outside is the length the ticks will reach outside the plot. If outside is greater than zero, the tick labels and axis label will increase their distance to the axis accordingly, so they won't collide with the ticks.

See also
setTickLengthIn, setTickLength, setSubTickLength

Definition at line 7990 of file qcustomplot.cpp.

void QCPAxis::setTickPen ( const QPen &  pen)

Sets the pen, tick marks will be drawn with.

See also
setTickLength, setBasePen

Definition at line 8074 of file qcustomplot.cpp.

void QCPAxis::setTicks ( bool  show)

Sets whether tick marks are displayed.

Note that setting show to false does not imply that tick labels are invisible, too. To achieve that, see setTickLabels.

See also
setSubTicks

Definition at line 7765 of file qcustomplot.cpp.

void QCPAxis::setUpperEnding ( const QCPLineEnding ending)

Sets the style for the upper axis ending. See the documentation of QCPLineEnding for available styles.

For horizontal axes, this method refers to the right ending, for vertical axes the top ending. Note that this meaning does not change when the axis range is reversed with setRangeReversed.

See also
setLowerEnding

Definition at line 8275 of file qcustomplot.cpp.

void QCPAxis::setupTickVectors ( )
protected

Definition at line 8764 of file qcustomplot.cpp.

int QCPAxis::subTickLengthIn ( ) const

Definition at line 7501 of file qcustomplot.cpp.

int QCPAxis::subTickLengthOut ( ) const

Definition at line 7507 of file qcustomplot.cpp.

QPen QCPAxis::subTickPen ( ) const
inline

Definition at line 2008 of file qcustomplot.h.

bool QCPAxis::subTicks ( ) const
inline

Definition at line 2003 of file qcustomplot.h.

QSharedPointer< QCPAxisTicker > QCPAxis::ticker ( ) const
inline

Returns a modifiable shared pointer to the currently installed axis ticker. The axis ticker is responsible for generating the tick positions and tick labels of this axis. You can access the QCPAxisTicker with this method and modify basic properties such as the approximate tick count (QCPAxisTicker::setTickCount).

You can gain more control over the axis ticks by setting a different QCPAxisTicker subclass, see the documentation there. A new axis ticker can be set with setTicker.

Since the ticker is stored in the axis as a shared pointer, multiple axes may share the same axis ticker simply by passing the same shared pointer to multiple axes.

See also
setTicker

Definition at line 1989 of file qcustomplot.h.

QColor QCPAxis::tickLabelColor ( ) const
inline

Definition at line 1994 of file qcustomplot.h.

QFont QCPAxis::tickLabelFont ( ) const
inline

Definition at line 1993 of file qcustomplot.h.

int QCPAxis::tickLabelPadding ( ) const

Definition at line 7457 of file qcustomplot.cpp.

double QCPAxis::tickLabelRotation ( ) const

Definition at line 7463 of file qcustomplot.cpp.

bool QCPAxis::tickLabels ( ) const
inline

Definition at line 1991 of file qcustomplot.h.

QCPAxis::LabelSide QCPAxis::tickLabelSide ( ) const

Definition at line 7469 of file qcustomplot.cpp.

int QCPAxis::tickLengthIn ( ) const

Definition at line 7489 of file qcustomplot.cpp.

int QCPAxis::tickLengthOut ( ) const

Definition at line 7495 of file qcustomplot.cpp.

QPen QCPAxis::tickPen ( ) const
inline

Definition at line 2007 of file qcustomplot.h.

bool QCPAxis::ticks ( ) const
inline

Definition at line 1990 of file qcustomplot.h.

QVector<double> QCPAxis::tickVector ( ) const
inline

Definition at line 1999 of file qcustomplot.h.

QVector<QString> QCPAxis::tickVectorLabels ( ) const
inline

Definition at line 2000 of file qcustomplot.h.

QCPLineEnding QCPAxis::upperEnding ( ) const

Definition at line 7531 of file qcustomplot.cpp.

Friends And Related Function Documentation

friend class QCPAxisRect
friend

Definition at line 2176 of file qcustomplot.h.

friend class QCPGrid
friend

Definition at line 2175 of file qcustomplot.h.

friend class QCustomPlot
friend

Definition at line 2174 of file qcustomplot.h.

Member Data Documentation

QCPAxisPainterPrivate* QCPAxis::mAxisPainter
protected

Definition at line 2142 of file qcustomplot.h.

QCPAxisRect* QCPAxis::mAxisRect
protected

Definition at line 2107 of file qcustomplot.h.

AxisType QCPAxis::mAxisType
protected

Definition at line 2106 of file qcustomplot.h.

QPen QCPAxis::mBasePen
protected

Definition at line 2112 of file qcustomplot.h.

int QCPAxis::mCachedMargin
protected

Definition at line 2148 of file qcustomplot.h.

bool QCPAxis::mCachedMarginValid
protected

Definition at line 2147 of file qcustomplot.h.

QCPGrid* QCPAxis::mGrid
protected

Definition at line 2141 of file qcustomplot.h.

QString QCPAxis::mLabel
protected

Definition at line 2116 of file qcustomplot.h.

QColor QCPAxis::mLabelColor
protected

Definition at line 2118 of file qcustomplot.h.

QFont QCPAxis::mLabelFont
protected

Definition at line 2117 of file qcustomplot.h.

bool QCPAxis::mNumberBeautifulPowers
protected

Definition at line 2127 of file qcustomplot.h.

QLatin1Char QCPAxis::mNumberFormatChar
protected

Definition at line 2126 of file qcustomplot.h.

int QCPAxis::mNumberPrecision
protected

Definition at line 2125 of file qcustomplot.h.

Qt::Orientation QCPAxis::mOrientation
protected

Definition at line 2110 of file qcustomplot.h.

int QCPAxis::mPadding
protected

Definition at line 2109 of file qcustomplot.h.

QCPRange QCPAxis::mRange
protected

Definition at line 2136 of file qcustomplot.h.

bool QCPAxis::mRangeReversed
protected

Definition at line 2137 of file qcustomplot.h.

ScaleType QCPAxis::mScaleType
protected

Definition at line 2138 of file qcustomplot.h.

SelectableParts QCPAxis::mSelectableParts
protected

Definition at line 2111 of file qcustomplot.h.

QPen QCPAxis::mSelectedBasePen
protected

Definition at line 2112 of file qcustomplot.h.

QColor QCPAxis::mSelectedLabelColor
protected

Definition at line 2118 of file qcustomplot.h.

QFont QCPAxis::mSelectedLabelFont
protected

Definition at line 2117 of file qcustomplot.h.

SelectableParts QCPAxis::mSelectedParts
protected

Definition at line 2111 of file qcustomplot.h.

QPen QCPAxis::mSelectedSubTickPen
protected

Definition at line 2134 of file qcustomplot.h.

QColor QCPAxis::mSelectedTickLabelColor
protected

Definition at line 2124 of file qcustomplot.h.

QFont QCPAxis::mSelectedTickLabelFont
protected

Definition at line 2123 of file qcustomplot.h.

QPen QCPAxis::mSelectedTickPen
protected

Definition at line 2133 of file qcustomplot.h.

QPen QCPAxis::mSubTickPen
protected

Definition at line 2134 of file qcustomplot.h.

bool QCPAxis::mSubTicks
protected

Definition at line 2131 of file qcustomplot.h.

QVector<double> QCPAxis::mSubTickVector
protected

Definition at line 2146 of file qcustomplot.h.

QSharedPointer<QCPAxisTicker> QCPAxis::mTicker
protected

Definition at line 2143 of file qcustomplot.h.

QColor QCPAxis::mTickLabelColor
protected

Definition at line 2124 of file qcustomplot.h.

QFont QCPAxis::mTickLabelFont
protected

Definition at line 2123 of file qcustomplot.h.

bool QCPAxis::mTickLabels
protected

Definition at line 2121 of file qcustomplot.h.

QPen QCPAxis::mTickPen
protected

Definition at line 2133 of file qcustomplot.h.

bool QCPAxis::mTicks
protected

Definition at line 2130 of file qcustomplot.h.

QVector<double> QCPAxis::mTickVector
protected

Definition at line 2144 of file qcustomplot.h.

QVector<QString> QCPAxis::mTickVectorLabels
protected

Definition at line 2145 of file qcustomplot.h.


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