QGIS API Documentation  3.16.0-Hannover (43b64b13f3)
Classes | Public Types | Public Member Functions | Protected Member Functions | List of all members
QgsScaleBarRenderer Class Referenceabstract

Abstract base class for scale bar renderers. More...

#include <qgsscalebarrenderer.h>

Inheritance diagram for QgsScaleBarRenderer:
Inheritance graph
[legend]

Classes

struct  ScaleBarContext
 Contains parameters regarding scalebar calculations. More...
 

Public Types

enum  Flag {
  Flag::FlagUsesLineSymbol = 1 << 0, Flag::FlagUsesFillSymbol = 1 << 1, Flag::FlagUsesAlternateFillSymbol = 1 << 2, Flag::FlagRespectsUnits = 1 << 3,
  Flag::FlagRespectsMapUnitsPerScaleBarUnit = 1 << 4, Flag::FlagUsesUnitLabel = 1 << 5, Flag::FlagUsesSegments = 1 << 6, Flag::FlagUsesLabelBarSpace = 1 << 7,
  Flag::FlagUsesLabelVerticalPlacement = 1 << 8, Flag::FlagUsesLabelHorizontalPlacement = 1 << 8, Flag::FlagUsesAlignment = 1 << 9, Flag::FlagUsesSubdivisions = 1 << 10,
  Flag::FlagUsesDivisionSymbol = 1 << 11, Flag::FlagUsesSubdivisionSymbol = 1 << 12, Flag::FlagUsesSubdivisionsHeight = 1 << 13
}
 Flags which control scalebar renderer behavior. More...
 

Public Member Functions

 QgsScaleBarRenderer ()=default
 Constructor for QgsScaleBarRenderer. More...
 
virtual ~QgsScaleBarRenderer ()=default
 
virtual bool applyDefaultSettings (QgsScaleBarSettings &settings) const
 Applies any default settings relating to the scalebar to the passed settings object. More...
 
virtual Q_DECL_DEPRECATED QSizeF calculateBoxSize (const QgsScaleBarSettings &settings, const QgsScaleBarRenderer::ScaleBarContext &scaleContext) const
 Calculates the required box size (in millimeters) for a scalebar using the specified settings and scaleContext. More...
 
virtual QSizeF calculateBoxSize (QgsRenderContext &context, const QgsScaleBarSettings &settings, const QgsScaleBarRenderer::ScaleBarContext &scaleContext) const
 Calculates the required box size (in millimeters) for a scalebar using the specified settings and scaleContext. More...
 
virtual QgsScaleBarRendererclone () const =0
 Returns a clone of the renderer. More...
 
virtual void draw (QgsRenderContext &context, const QgsScaleBarSettings &settings, const QgsScaleBarRenderer::ScaleBarContext &scaleContext) const =0
 Draws the scalebar using the specified settings and scaleContext to a destination render context. More...
 
virtual Flags flags () const
 Returns the scalebar rendering flags, which dictates the renderer's behavior. More...
 
virtual QString id () const =0
 Returns the unique ID for this renderer. More...
 
Q_DECL_DEPRECATED QString name () const
 Returns the unique name for this style. More...
 
virtual int sortKey () const
 Returns a sorting key value, where renderers with a lower sort key will be shown earlier in lists. More...
 
virtual QString visibleName () const =0
 Returns the user friendly, translated name for the renderer. More...
 

Protected Member Functions

void drawDefaultLabels (QgsRenderContext &context, const QgsScaleBarSettings &settings, const QgsScaleBarRenderer::ScaleBarContext &scaleContext) const
 Draws default scalebar labels using the specified settings and scaleContext to a destination render context. More...
 
QString firstLabelString (const QgsScaleBarSettings &settings) const
 Returns the text used for the first label in the scalebar. More...
 
Q_DECL_DEPRECATED double firstLabelXOffset (const QgsScaleBarSettings &settings) const
 Returns the x-offset (in millimeters) used for the first label in the scalebar. More...
 
double firstLabelXOffset (const QgsScaleBarSettings &settings, const QgsRenderContext &context, const ScaleBarContext &scaleContext) const
 Returns the x-offset (in render context painter units) used for the first label in the scalebar. More...
 
Q_DECL_DEPRECATED QList< double > segmentPositions (const QgsScaleBarRenderer::ScaleBarContext &scaleContext, const QgsScaleBarSettings &settings) const
 Returns a list of positions for each segment within the scalebar. More...
 
QList< double > segmentPositions (QgsRenderContext &context, const QgsScaleBarRenderer::ScaleBarContext &scaleContext, const QgsScaleBarSettings &settings) const
 Returns a list of positions for each segment within the scalebar. More...
 
QList< double > segmentWidths (const QgsScaleBarRenderer::ScaleBarContext &scaleContext, const QgsScaleBarSettings &settings) const
 Returns a list of widths of each segment of the scalebar. More...
 

Detailed Description

Abstract base class for scale bar renderers.

Scalebar renderer subclasses implement custom drawing logic, with the possibility to implement custom labeling.

Since
QGIS 3.0

Definition at line 38 of file qgsscalebarrenderer.h.

Member Enumeration Documentation

◆ Flag

Flags which control scalebar renderer behavior.

Since
QGIS 3.14
Enumerator
FlagUsesLineSymbol 

Renderer utilizes the scalebar line symbol (see QgsScaleBarSettings::lineSymbol() )

FlagUsesFillSymbol 

Renderer utilizes the scalebar fill symbol (see QgsScaleBarSettings::fillSymbol() )

FlagUsesAlternateFillSymbol 

Renderer utilizes the alternate scalebar fill symbol (see QgsScaleBarSettings::alternateFillSymbol() )

FlagRespectsUnits 

Renderer respects the QgsScaleBarSettings::units() setting.

FlagRespectsMapUnitsPerScaleBarUnit 

Renderer respects the QgsScaleBarSettings::mapUnitsPerScaleBarUnit() setting.

FlagUsesUnitLabel 

Renderer uses the QgsScaleBarSettings::unitLabel() setting.

FlagUsesSegments 

Renderer uses the scalebar segments.

FlagUsesLabelBarSpace 

Renderer uses the QgsScaleBarSettings::labelBarSpace() setting.

FlagUsesLabelVerticalPlacement 

Renderer uses the QgsScaleBarSettings::labelVerticalPlacement() setting.

FlagUsesLabelHorizontalPlacement 

Renderer uses the QgsScaleBarSettings::labelHorizontalPlacement() setting.

FlagUsesAlignment 

Renderer uses the QgsScaleBarSettings::alignment() setting.

FlagUsesSubdivisions 

Renderer uses the scalebar subdivisions (see QgsScaleBarSettings::numberOfSubdivisions() )

FlagUsesDivisionSymbol 

Renderer utilizes the scalebar division symbol (see QgsScaleBarSettings::divisionLineSymbol() )

FlagUsesSubdivisionSymbol 

Renderer utilizes the scalebar subdivision symbol (see QgsScaleBarSettings::subdivisionLineSymbol() )

FlagUsesSubdivisionsHeight 

Renderer uses the scalebar subdivisions height (see QgsScaleBarSettings::subdivisionsHeight() )

Definition at line 46 of file qgsscalebarrenderer.h.

Constructor & Destructor Documentation

◆ QgsScaleBarRenderer()

QgsScaleBarRenderer::QgsScaleBarRenderer ( )
default

Constructor for QgsScaleBarRenderer.

◆ ~QgsScaleBarRenderer()

virtual QgsScaleBarRenderer::~QgsScaleBarRenderer ( )
virtualdefault

Member Function Documentation

◆ applyDefaultSettings()

bool QgsScaleBarRenderer::applyDefaultSettings ( QgsScaleBarSettings settings) const
virtual

Applies any default settings relating to the scalebar to the passed settings object.

Returns true if settings were applied.

Since
QGIS 3.14

Reimplemented in QgsHollowScaleBarRenderer.

Definition at line 301 of file qgsscalebarrenderer.cpp.

◆ calculateBoxSize() [1/2]

QSizeF QgsScaleBarRenderer::calculateBoxSize ( const QgsScaleBarSettings settings,
const QgsScaleBarRenderer::ScaleBarContext scaleContext 
) const
virtual

Calculates the required box size (in millimeters) for a scalebar using the specified settings and scaleContext.

Deprecated:
Use the version with a QgsRenderContext instead.

Reimplemented in QgsNumericScaleBarRenderer.

Definition at line 175 of file qgsscalebarrenderer.cpp.

◆ calculateBoxSize() [2/2]

QSizeF QgsScaleBarRenderer::calculateBoxSize ( QgsRenderContext context,
const QgsScaleBarSettings settings,
const QgsScaleBarRenderer::ScaleBarContext scaleContext 
) const
virtual

Calculates the required box size (in millimeters) for a scalebar using the specified settings and scaleContext.

Since
QGIS 3.14

Reimplemented in QgsNumericScaleBarRenderer.

Definition at line 232 of file qgsscalebarrenderer.cpp.

◆ clone()

virtual QgsScaleBarRenderer* QgsScaleBarRenderer::clone ( ) const
pure virtual

Returns a clone of the renderer.

The caller takes ownership of the returned value.

Implemented in QgsTicksScaleBarRenderer, QgsSteppedLineScaleBarRenderer, QgsSingleBoxScaleBarRenderer, QgsNumericScaleBarRenderer, QgsHollowScaleBarRenderer, and QgsDoubleBoxScaleBarRenderer.

◆ draw()

virtual void QgsScaleBarRenderer::draw ( QgsRenderContext context,
const QgsScaleBarSettings settings,
const QgsScaleBarRenderer::ScaleBarContext scaleContext 
) const
pure virtual

Draws the scalebar using the specified settings and scaleContext to a destination render context.

Implemented in QgsTicksScaleBarRenderer, QgsSteppedLineScaleBarRenderer, QgsSingleBoxScaleBarRenderer, QgsNumericScaleBarRenderer, QgsHollowScaleBarRenderer, and QgsDoubleBoxScaleBarRenderer.

◆ drawDefaultLabels()

void QgsScaleBarRenderer::drawDefaultLabels ( QgsRenderContext context,
const QgsScaleBarSettings settings,
const QgsScaleBarRenderer::ScaleBarContext scaleContext 
) const
protected

Draws default scalebar labels using the specified settings and scaleContext to a destination render context.

Definition at line 28 of file qgsscalebarrenderer.cpp.

◆ firstLabelString()

QString QgsScaleBarRenderer::firstLabelString ( const QgsScaleBarSettings settings) const
protected

Returns the text used for the first label in the scalebar.

Definition at line 306 of file qgsscalebarrenderer.cpp.

◆ firstLabelXOffset() [1/2]

double QgsScaleBarRenderer::firstLabelXOffset ( const QgsScaleBarSettings settings) const
protected

Returns the x-offset (in millimeters) used for the first label in the scalebar.

Deprecated:
Use the version with QgsRenderContext instead.

Definition at line 318 of file qgsscalebarrenderer.cpp.

◆ firstLabelXOffset() [2/2]

double QgsScaleBarRenderer::firstLabelXOffset ( const QgsScaleBarSettings settings,
const QgsRenderContext context,
const ScaleBarContext scaleContext 
) const
protected

Returns the x-offset (in render context painter units) used for the first label in the scalebar.

Since
QGIS 3.2

Definition at line 326 of file qgsscalebarrenderer.cpp.

◆ flags()

QgsScaleBarRenderer::Flags QgsScaleBarRenderer::flags ( ) const
virtual

Returns the scalebar rendering flags, which dictates the renderer's behavior.

Since
QGIS 3.14

Reimplemented in QgsTicksScaleBarRenderer, QgsSteppedLineScaleBarRenderer, QgsSingleBoxScaleBarRenderer, QgsNumericScaleBarRenderer, QgsHollowScaleBarRenderer, and QgsDoubleBoxScaleBarRenderer.

Definition at line 165 of file qgsscalebarrenderer.cpp.

◆ id()

virtual QString QgsScaleBarRenderer::id ( ) const
pure virtual

◆ name()

Q_DECL_DEPRECATED QString QgsScaleBarRenderer::name ( ) const
inline

Returns the unique name for this style.

Deprecated:
use id() instead

Definition at line 104 of file qgsscalebarrenderer.h.

◆ segmentPositions() [1/2]

QList< double > QgsScaleBarRenderer::segmentPositions ( const QgsScaleBarRenderer::ScaleBarContext scaleContext,
const QgsScaleBarSettings settings 
) const
protected

Returns a list of positions for each segment within the scalebar.

Deprecated:
use the version with a QgsRenderContext instead

Definition at line 348 of file qgsscalebarrenderer.cpp.

◆ segmentPositions() [2/2]

QList< double > QgsScaleBarRenderer::segmentPositions ( QgsRenderContext context,
const QgsScaleBarRenderer::ScaleBarContext scaleContext,
const QgsScaleBarSettings settings 
) const
protected

Returns a list of positions for each segment within the scalebar.

Since
QGIS 3.14

Definition at line 375 of file qgsscalebarrenderer.cpp.

◆ segmentWidths()

QList< double > QgsScaleBarRenderer::segmentWidths ( const QgsScaleBarRenderer::ScaleBarContext scaleContext,
const QgsScaleBarSettings settings 
) const
protected

Returns a list of widths of each segment of the scalebar.

Definition at line 403 of file qgsscalebarrenderer.cpp.

◆ sortKey()

int QgsScaleBarRenderer::sortKey ( ) const
virtual

Returns a sorting key value, where renderers with a lower sort key will be shown earlier in lists.

Generally, subclasses should return QgsScaleBarRenderer::sortKey() as their sorting key.

Reimplemented in QgsTicksScaleBarRenderer, QgsSteppedLineScaleBarRenderer, QgsSingleBoxScaleBarRenderer, QgsNumericScaleBarRenderer, QgsHollowScaleBarRenderer, and QgsDoubleBoxScaleBarRenderer.

Definition at line 170 of file qgsscalebarrenderer.cpp.

◆ visibleName()

virtual QString QgsScaleBarRenderer::visibleName ( ) const
pure virtual

Returns the user friendly, translated name for the renderer.

Since
QGIS 3.14

Implemented in QgsTicksScaleBarRenderer, QgsSteppedLineScaleBarRenderer, QgsSingleBoxScaleBarRenderer, QgsNumericScaleBarRenderer, QgsHollowScaleBarRenderer, and QgsDoubleBoxScaleBarRenderer.


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