Class: QgsScaleBarRenderer¶
Abstract base class for scale bar renderers.
Scalebar renderer subclasses implement custom drawing logic, with the possibility to implement custom labeling.
Note
This is an abstract class, with methods which must be implemented by a subclass.
The following methods must be implemented: clone()
, draw()
, id()
, visibleName()
Class Hierarchy¶
Subclasses¶
Double box with alternating colors. |
|
Scalebar style that draws a single box with alternating color for the segments, with horizontal lines through alternating segments. |
|
A scale bar style that draws text in the form of ‘1:XXXXX’. |
|
Scalebar style that draws a single box with alternating color for the segments. |
|
Scalebar style that draws a stepped line representation of a scalebar. |
|
A scale bar that draws segments using short ticks. |
Enums
Flags which control scalebar renderer behavior. |
Abstract Methods
Returns a clone of the renderer. |
|
Draws the scalebar using the specified settings and scaleContext to a destination render context. |
|
Returns the unique ID for this renderer. |
|
Returns the user friendly, translated name for the renderer. |
Methods
Draws default scalebar labels using the specified settings and scaleContext to a destination render context. |
|
Returns the text used for the first label in the scalebar. |
|
Returns the x-offset (in millimeters) used for the first label in the scalebar. |
|
Returns the unique name for this style. |
|
Returns a list of positions for each segment within the scalebar. |
|
Returns a list of widths of each segment of the scalebar. |
Virtual Methods
In PyQGIS, only methods marked as virtual
can be safely overridden in a Python subclass of QgsScaleBarRenderer. See the FAQ for more details.
Applies any default settings relating to the scalebar to the passed settings object. |
|
Calculates the required box size (in millimeters) for a scalebar using the specified settings and scaleContext. |
|
Returns the scalebar rendering flags, which dictates the renderer's behavior. |
|
Returns a sorting key value, where renderers with a lower sort key will be shown earlier in lists. |
- class qgis.core.QgsScaleBarRenderer[source]¶
Bases:
object
- class Flag(*values)¶
Bases:
IntEnum
Flags which control scalebar renderer behavior.
Added in version 3.14.
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() settingFlagRespectsMapUnitsPerScaleBarUnit
: Renderer respects the QgsScaleBarSettings.mapUnitsPerScaleBarUnit() settingFlagUsesUnitLabel
: Renderer uses the QgsScaleBarSettings.unitLabel() settingFlagUsesSegments
: Renderer uses the scalebar segmentsFlagUsesLabelBarSpace
: Renderer uses the QgsScaleBarSettings.labelBarSpace() settingFlagUsesLabelVerticalPlacement
: Renderer uses the QgsScaleBarSettings.labelVerticalPlacement() settingFlagUsesLabelHorizontalPlacement
: Renderer uses the QgsScaleBarSettings.labelHorizontalPlacement() settingFlagUsesAlignment
: Renderer uses the QgsScaleBarSettings.alignment() settingFlagUsesSubdivisions
: 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() )
- FlagRespectsMapUnitsPerScaleBarUnit = 16¶
- FlagRespectsUnits = 8¶
- FlagUsesAlignment = 512¶
- FlagUsesAlternateFillSymbol = 4¶
- FlagUsesDivisionSymbol = 2048¶
- FlagUsesFillSymbol = 2¶
- FlagUsesLabelBarSpace = 128¶
- FlagUsesLabelHorizontalPlacement = 256¶
- FlagUsesLabelVerticalPlacement = 256¶
- FlagUsesLineSymbol = 1¶
- FlagUsesSegments = 64¶
- FlagUsesSubdivisionSymbol = 4096¶
- FlagUsesSubdivisions = 1024¶
- FlagUsesSubdivisionsHeight = 8192¶
- FlagUsesUnitLabel = 32¶
- class Flags¶
- class Flags(f: QgsScaleBarRenderer.Flags | QgsScaleBarRenderer.Flag)
- class Flags(a0: QgsScaleBarRenderer.Flags)
Bases:
object
- class ScaleBarContext¶
Bases:
object
Contains parameters regarding scalebar calculations.
Note
The need to attribute the parameters vary depending on the targeted scalebar.
- flags: QgsScaleBarRenderer.Flags¶
Scalebar renderer flags
- isValid(self) bool ¶
Returns
True
if the context has valid settings.Added in version 3.40.
- Return type:
bool
- scale: float¶
Scale denominator
- segmentWidth: float¶
The width, in millimeters, of each individual segment drawn.
Note
The number of map units per segment needs to be set via
QgsScaleBarSettings
.setUnitsPerSegment.
- size: QSizeF¶
Destination size for scalebar. This is used for scalebars which alter their appearance or alignment based on the desired scalebar size (e.g. correctly aligning text in a numeric scale bar).
- virtual applyDefaultSettings(self, settings: QgsScaleBarSettings) bool [source]¶
Applies any default settings relating to the scalebar to the passed
settings
object.Returns
True
if settings were applied.Added in version 3.14.
- Parameters:
settings (QgsScaleBarSettings)
- Return type:
bool
- virtual calculateBoxSize(self, settings: QgsScaleBarSettings, scaleContext: QgsScaleBarRenderer.ScaleBarContext) QSizeF [source]¶
Calculates the required box size (in millimeters) for a scalebar using the specified
settings
andscaleContext
.Deprecated since version 3.40: Use the version with a
QgsRenderContext
instead.- Parameters:
settings (
QgsScaleBarSettings
)scaleContext (QgsScaleBarRenderer.ScaleBarContext)
- Return type:
QSizeF
- virtual calculateBoxSize(self, context: QgsRenderContext, settings: QgsScaleBarSettings, scaleContext: QgsScaleBarRenderer.ScaleBarContext) QSizeF [source]
Calculates the required box size (in millimeters) for a scalebar using the specified
settings
andscaleContext
.Added in version 3.14.
- Parameters:
context (
QgsRenderContext
)settings (
QgsScaleBarSettings
)scaleContext (QgsScaleBarRenderer.ScaleBarContext)
- Return type:
QSizeF
- abstract clone(self) QgsScaleBarRenderer | None [source]¶
Returns a clone of the renderer. The caller takes ownership of the returned value.
- Return type:
Optional[QgsScaleBarRenderer]
- abstract draw(self, context: QgsRenderContext, settings: QgsScaleBarSettings, scaleContext: QgsScaleBarRenderer.ScaleBarContext)[source]¶
Draws the scalebar using the specified
settings
andscaleContext
to a destination rendercontext
.- Parameters:
context (QgsRenderContext)
settings (QgsScaleBarSettings)
scaleContext (QgsScaleBarRenderer.ScaleBarContext)
- drawDefaultLabels(self, context: QgsRenderContext, settings: QgsScaleBarSettings, scaleContext: QgsScaleBarRenderer.ScaleBarContext)[source]¶
Draws default scalebar labels using the specified
settings
andscaleContext
to a destination rendercontext
.- Parameters:
context (QgsRenderContext)
settings (QgsScaleBarSettings)
scaleContext (QgsScaleBarRenderer.ScaleBarContext)
- firstLabelString(self, settings: QgsScaleBarSettings) str [source]¶
Returns the text used for the first label in the scalebar.
- Parameters:
settings (QgsScaleBarSettings)
- Return type:
str
- firstLabelXOffset(self, settings: QgsScaleBarSettings) float [source]¶
Returns the x-offset (in millimeters) used for the first label in the scalebar.
Deprecated since version 3.40: Use the version with
QgsRenderContext
instead.- Parameters:
settings (
QgsScaleBarSettings
)- Return type:
float
- firstLabelXOffset(self, settings: QgsScaleBarSettings, context: QgsRenderContext, scaleContext: QgsScaleBarRenderer.ScaleBarContext) float [source]
Returns the x-offset (in render context painter units) used for the first label in the scalebar.
Added in version 3.2.
- Parameters:
settings (
QgsScaleBarSettings
)context (
QgsRenderContext
)scaleContext (QgsScaleBarRenderer.ScaleBarContext)
- Return type:
float
- virtual flags(self) QgsScaleBarRenderer.Flags [source]¶
Returns the scalebar rendering flags, which dictates the renderer’s behavior.
Added in version 3.14.
- Return type:
- abstract id(self) str [source]¶
Returns the unique ID for this renderer.
Added in version 3.14.
- Return type:
str
- name(self) str [source]¶
Returns the unique name for this style.
Deprecated since version 3.40: Use
id()
instead.- Return type:
str
- segmentPositions(self, scaleContext: QgsScaleBarRenderer.ScaleBarContext, settings: QgsScaleBarSettings) List[float] ¶
Returns a list of positions for each segment within the scalebar.
Deprecated since version 3.40: Use the version with a
QgsRenderContext
instead.- Parameters:
scaleContext (QgsScaleBarRenderer.ScaleBarContext)
settings (
QgsScaleBarSettings
)
- Return type:
List[float]
- segmentPositions(self, context: QgsRenderContext, scaleContext: QgsScaleBarRenderer.ScaleBarContext, settings: QgsScaleBarSettings) List[float]
Returns a list of positions for each segment within the scalebar.
Added in version 3.14.
- Parameters:
context (
QgsRenderContext
)scaleContext (QgsScaleBarRenderer.ScaleBarContext)
settings (
QgsScaleBarSettings
)
- Return type:
List[float]
- segmentWidths(self, scaleContext: QgsScaleBarRenderer.ScaleBarContext, settings: QgsScaleBarSettings) List[float] ¶
Returns a list of widths of each segment of the scalebar.
- Parameters:
scaleContext (QgsScaleBarRenderer.ScaleBarContext)
settings (QgsScaleBarSettings)
- Return type:
List[float]
- virtual sortKey(self) int [source]¶
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.- Return type:
int