Search for usage in LXR

Public Types

enum  AnchorMode { amRectangular, amSkewedUpright, amSkewedRotated }
enum  AnchorReferenceType { artNormal, artTangent }
enum  AnchorSide {
  asLeft, asRight, asTop, asBottom,
  asTopLeft, asTopRight, asBottomRight, asBottomLeft

Public Member Functions

 QCPLabelPainterPrivate (QCustomPlot *parentPlot)
bool abbreviateDecimalPowers () const
AnchorMode anchorMode () const
QPointF anchorReference () const
AnchorReferenceType anchorReferenceType () const
AnchorSide anchorSide () const
int cacheSize () const
void clearCache ()
QColor color () const
void drawTickLabel (QCPPainter *painter, const QPointF &tickPos, const QString &text)
QFont font () const
QChar multiplicationSymbol () const
int padding () const
double rotation () const
void setAbbreviateDecimalPowers (bool enabled)
void setAnchorMode (AnchorMode mode)
void setAnchorReference (const QPointF &pixelPoint)
void setAnchorReferenceType (AnchorReferenceType type)
void setAnchorSide (AnchorSide side)
void setCacheSize (int labelCount)
void setColor (const QColor &color)
void setFont (const QFont &font)
void setMultiplicationSymbol (QChar symbol)
void setPadding (int padding)
void setRotation (double rotation)
void setSubstituteExponent (bool enabled)
bool substituteExponent () const

Static Public Attributes

static const QChar SymbolCross
static const QChar SymbolDot

Protected Member Functions

void analyzeFontMetrics ()
void applyAnchorTransform (LabelData &labelData) const
QByteArray cacheKey (const QString &text, const QColor &color, double rotation, AnchorSide side) const
CachedLabel * createCachedLabel (const LabelData &labelData) const
virtual void drawLabelMaybeCached (QCPPainter *painter, const QFont &font, const QColor &color, const QPointF &pos, AnchorSide side, double rotation, const QString &text)
void drawText (QCPPainter *painter, const QPointF &pos, const LabelData &labelData) const
virtual QByteArray generateLabelParameterHash () const
QPointF getAnchorPos (const QPointF &tickPos)
LabelData getTickLabelData (const QFont &font, const QColor &color, double rotation, AnchorSide side, const QString &text) const
AnchorSide rotationCorrectedSide (AnchorSide side, double rotation) const
AnchorSide skewedAnchorSide (const QPointF &tickPos, double sideExpandHorz, double sideExpandVert) const

Protected Attributes

bool mAbbreviateDecimalPowers
AnchorMode mAnchorMode
QPointF mAnchorReference
AnchorReferenceType mAnchorReferenceType
AnchorSide mAnchorSide
QRect mAxisSelectionBox
QColor mColor
QFont mFont
QCache< QString, CachedLabel > mLabelCache
QByteArray mLabelParameterHash
QRect mLabelSelectionBox
int mLetterCapHeight
int mLetterDescent
QChar mMultiplicationSymbol
int mPadding
double mRotation
bool mSubstituteExponent
QRect mTickLabelsSelectionBox

Detailed Description


This is a private class and not part of the public QCustomPlot interface.

Definition at line 1539 of file qcustomplot.h.

Member Enumeration Documentation

◆ AnchorMode


Definition at line 1546 of file qcustomplot.h.

◆ AnchorReferenceType


Definition at line 1555 of file qcustomplot.h.

◆ AnchorSide


Definition at line 1563 of file qcustomplot.h.

Constructor & Destructor Documentation

◆ QCPLabelPainterPrivate()

QCPLabelPainterPrivate::QCPLabelPainterPrivate ( QCustomPlot parentPlot)

Constructs a QCPLabelPainterPrivate instance. Make sure to not create a new instance on every redraw, to utilize the caching mechanisms.

the parentPlot does not take ownership of the label painter. Make sure to delete it appropriately.

Definition at line 5466 of file qcustomplot.cpp.

Member Function Documentation

◆ clearCache()

void QCPLabelPainterPrivate::clearCache ( )

Returns the size ("margin" in QCPAxisRect context, so measured perpendicular to the axis backbone direction) needed to fit the axis.

Clears the internal label cache. Upon the next draw, all labels will be created new. This method is called automatically if any parameters have changed that invalidate the cached labels, such as font, color, etc. Usually you won't need to call this method manually.

Definition at line 5621 of file qcustomplot.cpp.

◆ createCachedLabel()

QCPLabelPainterPrivate::CachedLabel * QCPLabelPainterPrivate::createCachedLabel ( const LabelData &  labelData) const

Simulates the steps done by placeTickLabel by calculating bounding boxes of the text label to be drawn, depending on number format etc. Since only the largest tick label is wanted for the margin calculation, the passed tickLabelsSize is only expanded, if it's currently set to a smaller width/height.

Definition at line 5939 of file qcustomplot.cpp.

◆ drawLabelMaybeCached()

void QCPLabelPainterPrivate::drawLabelMaybeCached ( QCPPainter painter,
const QFont font,
const QColor color,
const QPointF pos,
AnchorSide  side,
double  rotation,
const QString text 

Draws a single tick label with the provided painter, utilizing the internal label cache to significantly speed up drawing of labels that were drawn in previous calls. The tick label is always bound to an axis, the distance to the axis is controllable via distanceToAxis in pixels. The pixel position in the axis direction is passed in the position parameter. Hence for the bottom axis, position would indicate the horizontal pixel position (not coordinate), at which the label should be drawn.

In order to later draw the axis label in a place that doesn't overlap with the tick labels, the largest tick label size is needed. This is acquired by passing a tickLabelsSize to the drawTickLabel calls during the process of drawing all tick labels of one axis. In every call, tickLabelsSize is expanded, if the drawn label exceeds the value tickLabelsSize currently holds.

The label is drawn with the font and pen that are currently set on the painter. To draw superscripted powers, the font is temporarily made smaller by a fixed factor (see getTickLabelData).

Definition at line 5665 of file qcustomplot.cpp.

◆ drawText()

void QCPLabelPainterPrivate::drawText ( QCPPainter painter,
const QPointF pos,
const LabelData &  labelData 
) const

This is a placeTickLabel helper function.

Draws the tick label specified in labelData with painter at the pixel positions x and y. This function is used by placeTickLabel to create new tick labels for the cache, or to directly draw the labels on the QCustomPlot surface when label caching is disabled, i.e. when QCP::phCacheLabels plotting hint is not set.

Definition at line 5767 of file qcustomplot.cpp.

◆ generateLabelParameterHash()

QByteArray QCPLabelPainterPrivate::generateLabelParameterHash ( ) const

Returns a hash that allows uniquely identifying whether the label parameters have changed such that the cached labels must be refreshed (clearCache). It is used in draw. If the return value of this method hasn't changed since the last redraw, the respective label parameters haven't changed and cached labels may be used.

Definition at line 5633 of file qcustomplot.cpp.

◆ getTickLabelData()

QCPLabelPainterPrivate::LabelData QCPLabelPainterPrivate::getTickLabelData ( const QFont font,
const QColor color,
double  rotation,
AnchorSide  side,
const QString text 
) const

This is a placeTickLabel helper function.

Transforms the passed text and font to a tickLabelData structure that can then be further processed by getTickLabelDrawOffset and drawTickLabel. It splits the text into base and exponent if necessary (member substituteExponent) and calculates appropriate bounding boxes.

Definition at line 5819 of file qcustomplot.cpp.

The documentation for this class was generated from the following files:
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Thu Aug 18 2022 03:56:48 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.