Class: QgsSymbolLayer¶
- class qgis.core.QgsSymbolLayer(type: Qgis.SymbolType, locked: bool = False)¶
Bases:
sip.wrapper
Constructor for QgsSymbolLayer.
- Parameters:
type – specifies the associated symbol type
locked –
if
True
, then symbol layer colors will be locked and will ignore any symbol-level color changes.Enums
Bases:
enum.IntEnum
Methods
Returns
True
if the symbol layer rendering can cause visible artifacts across a single feature when the feature is rendered as a series of adjacent map tiles each containing a portion of the feature's geometry.Shall be reimplemented by subclasses to create a deep copy of the instance.
Returns the "representative" color of the symbol layer.
Copies all data defined properties of this layer to another symbol layer.
Copies paint effect of this layer to another symbol layer
Returns a reference to the symbol layer's property collection, used for data defined overrides.
- param context:
Gets angle
Gets brush/fill color
Gets brush/fill style
Gets color
Gets dash pattern
Gets offset
Gets pen style
Gets marker size
Gets line width
Returns
True
if symbol layer is enabled and will be drawn.Returns the estimated maximum distance which the layer style will bleed outside the drawn shape when drawn in the specified /a context.
Returns the fill color for the symbol layer.
Returns flags which control the symbol layer's behavior.
Returns
True
if the symbol layer (or any of its sub-symbols) contains data defined properties.Returns symbol layer identifier This id is unique in the whole project
When rendering, install masks on
context
painter ifrecursive
isTrue
masks are installed recursively for all children symbol layersReturns if the layer can be used below the specified symbol
Returns
True
if the symbol layer colors are locked and the layer will ignore any symbol-level color changes.Returns a string that represents this layer type.
- rtype:
QgsMapUnitScale
Returns masks defined by this symbol layer.
- param mmScaleFactor:
Returns the units to use for sizes and widths within the symbol layer.
Returns the current paint effect for the layer.
Prepares all data defined property expressions for evaluation.
Prepares all mask internal objects according to what is defined in
context
This should be called prior to callingstartRender()
method.Should be reimplemented by subclasses to return a string map that contains the configuration information for the symbol layer.
Returns the symbol layer property definitions.
When rendering, remove previously installed masks from
context
painter ifrecursive
isTrue
masks are removed recursively for all children symbol layersSpecifies the rendering pass in which this symbol layer should be rendered.
Restores older data defined properties from string map.
Sets the "representative" color for the symbol layer.
Sets the symbol layer's property collection, used for data defined overrides.
Sets a data defined property for the layer.
Sets whether symbol layer is enabled and should be drawn.
Sets the fill
color
for the symbol layer.Set symbol layer identifier This id has to be unique in the whole project
Sets whether the layer's colors are locked.
- param scale:
Sets the units to use for sizes and widths within the symbol layer.
Sets the current paint effect for the layer.
Specifies the rendering pass in which this symbol layer should be rendered.
Sets the stroke
color
for the symbol layer.Sets layer's subsymbol.
Sets user-controlled
flags
which control the symbol layer's behavior.Returns
True
if the symbol layer should be rendered using the selection color from the render context.Called before the layer will be rendered for a particular
feature
.Called before a set of rendering operations commences on the supplied render
context
.Called after the layer has been rendered for a particular
feature
.Called after a set of rendering operations has finished on the supplied render
context
.Returns the stroke color for the symbol layer.
Returns the symbol's sub symbol, if present.
Saves the symbol layer as SLD
- rtype:
Qgis.SymbolType
Returns the set of attributes referenced by the layer.
Returns user-controlled flags which control the symbol layer's behavior.
Returns
True
if the symbol layer has any components which use map unit based sizes.write as DXF
- class Property(value)¶
Bases:
enum.IntEnum
Data definable properties.
PropertySize
: Symbol sizePropertyAngle
: Symbol anglePropertyName
: Name, eg shape name for simple markersPropertyFillColor
: Fill colorPropertyStrokeColor
: Stroke colorPropertyStrokeWidth
: Stroke widthPropertyStrokeStyle
: Stroke style (eg solid, dashed)PropertyOffset
: Symbol offsetPropertyCharacter
: Character, eg for font marker symbol layersPropertyWidth
: Symbol widthPropertyHeight
: Symbol heightPropertyPreserveAspectRatio
: Preserve aspect ratio between width and heightPropertyFillStyle
: Fill style (eg solid, dots)PropertyJoinStyle
: Line join stylePropertySecondaryColor
: Secondary color (eg for gradient fills)PropertyLineAngle
: Line angle, or angle of hash lines for hash line symbolsPropertyLineDistance
: Distance between lines, or length of lines for hash line symbolsPropertyGradientType
: Gradient fill typePropertyCoordinateMode
: Gradient coordinate modePropertyGradientSpread
: Gradient spread modePropertyGradientReference1X
: Gradient reference point 1 xPropertyGradientReference1Y
: Gradient reference point 1 yPropertyGradientReference2X
: Gradient reference point 2 xPropertyGradientReference2Y
: Gradient reference point 2 yPropertyGradientReference1IsCentroid
: Gradient reference point 1 is centroidPropertyGradientReference2IsCentroid
: Gradient reference point 2 is centroidPropertyBlurRadius
: Shapeburst blur radiusPropertyShapeburstUseWholeShape
: Shapeburst use whole shapePropertyShapeburstMaxDistance
: Shapeburst fill from edge distancePropertyShapeburstIgnoreRings
: Shapeburst ignore ringsPropertyFile
: Filename, eg for svg filesPropertyDistanceX
: Horizontal distance between pointsPropertyDistanceY
: Vertical distance between pointsPropertyDisplacementX
: Horizontal displacementPropertyDisplacementY
: Vertical displacementPropertyOpacity
: OpacityPropertyCustomDash
: Custom dash patternPropertyCapStyle
: Line cap stylePropertyPlacement
: Line marker placementPropertyInterval
: Line marker intervalPropertyOffsetAlongLine
: Offset along linePropertyAverageAngleLength
: Length to average symbol angles overPropertyHorizontalAnchor
: Horizontal anchor pointPropertyVerticalAnchor
: Vertical anchor pointPropertyLayerEnabled
: Whether symbol layer is enabledPropertyArrowWidth
: Arrow tail widthPropertyArrowStartWidth
: Arrow tail start widthPropertyArrowHeadLength
: Arrow head lengthPropertyArrowHeadThickness
: Arrow head thicknessPropertyArrowHeadType
: Arrow head typePropertyArrowType
: Arrow typePropertyOffsetX
: Horizontal offsetPropertyOffsetY
: Vertical offsetPropertyPointCount
: Point countPropertyRandomSeed
: Random number seedPropertyClipPoints
: Whether markers should be clipped to polygon boundariesPropertyDensityArea
: Density areaPropertyFontFamily
: Font familyPropertyFontStyle
: Font stylePropertyDashPatternOffset
: Dash pattern offset,PropertyTrimStart
: Trim distance from start of line (since QGIS 3.20)PropertyTrimEnd
: Trim distance from end of line (since QGIS 3.20)PropertyLineStartWidthValue
: Start line width for interpolated line renderer (since QGIS 3.22)PropertyLineEndWidthValue
: End line width for interpolated line renderer (since QGIS 3.22)PropertyLineStartColorValue
: Start line color for interpolated line renderer (since QGIS 3.22)PropertyLineEndColorValue
: End line color for interpolated line renderer (since QGIS 3.22)PropertyMarkerClipping
: Marker clipping mode (since QGIS 3.24)PropertyRandomOffsetX
: Random offset X (since QGIS 3.24)PropertyRandomOffsetY
: Random offset Y (since QGIS 3.24)PropertyLineClipping
: Line clipping mode (since QGIS 3.24)
- canCauseArtifactsBetweenAdjacentTiles(self) bool ¶
Returns
True
if the symbol layer rendering can cause visible artifacts across a single feature when the feature is rendered as a series of adjacent map tiles each containing a portion of the feature’s geometry.The default implementation returns
False
.New in version 3.18.
- Return type:
bool
- clone(self) QgsSymbolLayer ¶
Shall be reimplemented by subclasses to create a deep copy of the instance.
- Return type:
- color(self) QColor ¶
Returns the “representative” color of the symbol layer.
Depending on the symbol layer type, this will have different meaning. For instance, a line symbol layer will generally return the stroke color of the layer, while a fill symbol layer will return the “fill” color instead of stroke.
Some symbol layer types will return an invalid QColor if they have no representative color associated (e.g. raster image based symbol layers).
See also
See also
See also
- Return type:
QColor
- copyDataDefinedProperties(self, destLayer: QgsSymbolLayer)¶
Copies all data defined properties of this layer to another symbol layer.
- Parameters:
destLayer (QgsSymbolLayer) – destination layer
- copyPaintEffect(self, destLayer: QgsSymbolLayer)¶
Copies paint effect of this layer to another symbol layer
- Parameters:
destLayer (QgsSymbolLayer) – destination layer
- dataDefinedProperties(self) QgsPropertyCollection ¶
Returns a reference to the symbol layer’s property collection, used for data defined overrides.
See also
See also
Property
- Return type:
- drawPreviewIcon(self, context: QgsSymbolRenderContext, size: QSize)¶
- Parameters:
context (QgsSymbolRenderContext) –
size (QSize) –
- dxfAngle(self, context: QgsSymbolRenderContext) float ¶
Gets angle
- Parameters:
context (QgsSymbolRenderContext) –
- Return type:
float
- dxfBrushColor(self, context: QgsSymbolRenderContext) QColor ¶
Gets brush/fill color
- Parameters:
context (QgsSymbolRenderContext) –
- Return type:
QColor
- dxfBrushStyle(self) Qt.BrushStyle ¶
Gets brush/fill style
- Return type:
Qt.BrushStyle
- dxfColor(self, context: QgsSymbolRenderContext) QColor ¶
Gets color
- Parameters:
context (QgsSymbolRenderContext) –
- Return type:
QColor
- dxfCustomDashPattern(self) Tuple[List[float], Qgis.RenderUnit] ¶
Gets dash pattern
- Return type:
Tuple[List[float], Qgis.RenderUnit]
- dxfOffset(self, e: QgsDxfExport, context: QgsSymbolRenderContext) float ¶
Gets offset
- Parameters:
e (QgsDxfExport) –
context (QgsSymbolRenderContext) –
- Return type:
float
- dxfPenStyle(self) Qt.PenStyle ¶
Gets pen style
- Return type:
Qt.PenStyle
- dxfSize(self, e: QgsDxfExport, context: QgsSymbolRenderContext) float ¶
Gets marker size
- Parameters:
e (QgsDxfExport) –
context (QgsSymbolRenderContext) –
- Return type:
float
- dxfWidth(self, e: QgsDxfExport, context: QgsSymbolRenderContext) float ¶
Gets line width
- Parameters:
e (QgsDxfExport) –
context (QgsSymbolRenderContext) –
- Return type:
float
- enabled(self) bool ¶
Returns
True
if symbol layer is enabled and will be drawn.See also
- Return type:
bool
- estimateMaxBleed(self, context: QgsRenderContext) float ¶
Returns the estimated maximum distance which the layer style will bleed outside the drawn shape when drawn in the specified /a context. For example, polygons drawn with an stroke will draw half the width of the stroke outside of the polygon. This amount is estimated, since it may be affected by data defined symbology rules.
- Parameters:
context (QgsRenderContext) –
- Return type:
float
- fillColor(self) QColor ¶
Returns the fill color for the symbol layer.
This property is not supported by all symbol layer types, only those with a fill component. Symbol layers without a fill component will return an invalid QColor.
See also
See also
See also
- Return type:
QColor
- flags(self) Qgis.SymbolLayerFlags ¶
Returns flags which control the symbol layer’s behavior.
New in version 3.22.
- Return type:
- hasDataDefinedProperties(self) bool ¶
Returns
True
if the symbol layer (or any of its sub-symbols) contains data defined properties.New in version 3.4.5.
- Return type:
bool
- id(self) str ¶
Returns symbol layer identifier This id is unique in the whole project
New in version 3.30.
- Return type:
str
- installMasks(self, context: QgsRenderContext, recursive: bool)¶
When rendering, install masks on
context
painter ifrecursive
isTrue
masks are installed recursively for all children symbol layersSee also
See also
New in version 3.30.
- Parameters:
context (QgsRenderContext) –
recursive (bool) –
- isCompatibleWithSymbol(self, symbol: QgsSymbol) bool ¶
Returns if the layer can be used below the specified symbol
- Parameters:
symbol (QgsSymbol) –
- Return type:
bool
- isLocked(self) bool ¶
Returns
True
if the symbol layer colors are locked and the layer will ignore any symbol-level color changes.See also
- Return type:
bool
- layerType(self) str ¶
Returns a string that represents this layer type. Used for serialization. Should match with the string used to register this symbol layer in the registry.
- Return type:
str
- mapUnitScale(self) QgsMapUnitScale ¶
- Return type:
- masks(self) List[QgsSymbolLayerReference] ¶
Returns masks defined by this symbol layer. This is a list of symbol layers of other layers that should be occluded.
New in version 3.12.
- Return type:
List[QgsSymbolLayerReference]
- ogrFeatureStyle(self, mmScaleFactor: float, mapUnitScaleFactor: float) str ¶
- Parameters:
mmScaleFactor (float) –
mapUnitScaleFactor (float) –
- Return type:
str
- outputUnit(self) Qgis.RenderUnit ¶
Returns the units to use for sizes and widths within the symbol layer. Individual symbol layer subclasses will interpret this in different ways, e.g., a marker symbol layer may use it to specify the units for the marker size, while a line symbol layer may use it to specify the units for the line width.
- Return type:
- Returns:
output unit, or
QgsUnitTypes
.RenderUnknownUnit if the symbol layer contains mixed units
See also
- paintEffect(self) QgsPaintEffect ¶
Returns the current paint effect for the layer.
- Return type:
- Returns:
paint effect
See also
- prepareExpressions(self, context: QgsSymbolRenderContext)¶
Prepares all data defined property expressions for evaluation. This should be called prior to evaluating data defined properties.
- Parameters:
context (QgsSymbolRenderContext) – symbol render context
- prepareMasks(self, context: QgsSymbolRenderContext)¶
Prepares all mask internal objects according to what is defined in
context
This should be called prior to callingstartRender()
method.New in version 3.26.
- Parameters:
context (QgsSymbolRenderContext) –
- properties(self) Dict[str, Any] ¶
Should be reimplemented by subclasses to return a string map that contains the configuration information for the symbol layer. This is used to serialize a symbol layer perstistently.
- Return type:
Dict[str, Any]
- propertyDefinitions() Dict[int, QgsPropertyDefinition] ¶
Returns the symbol layer property definitions.
- Return type:
Dict[int, QgsPropertyDefinition]
- removeMasks(self, context: QgsRenderContext, recursive: bool)¶
When rendering, remove previously installed masks from
context
painter ifrecursive
isTrue
masks are removed recursively for all children symbol layersSee also
See also
New in version 3.30.
- Parameters:
context (QgsRenderContext) –
recursive (bool) –
- renderingPass(self) int ¶
Specifies the rendering pass in which this symbol layer should be rendered. The lower the number, the lower the symbol will be rendered. 0: first pass, 1: second pass, … Defaults to 0
- Return type:
int
- restoreOldDataDefinedProperties(self, stringMap: Dict[str, Any])¶
Restores older data defined properties from string map.
- Parameters:
stringMap (Dict[str) –
- setColor(self, color: QColor | Qt.GlobalColor | QGradient)¶
Sets the “representative” color for the symbol layer.
Depending on the symbol layer type, this will have different meaning. For instance, a line symbol layer will generally set the stroke color of the layer, while a fill symbol layer will set the “fill” color instead of stroke.
See also
See also
See also
- Parameters:
color (Union[QColor) –
- setDataDefinedProperties(self, collection: QgsPropertyCollection)¶
Sets the symbol layer’s property collection, used for data defined overrides.
- Parameters:
collection (QgsPropertyCollection) – property collection. Existing properties will be replaced.
See also
- setDataDefinedProperty(self, key: QgsSymbolLayer.Property, property: QgsProperty)¶
Sets a data defined property for the layer. Any existing property with the same key will be overwritten.
See also
See also
Property
- Parameters:
key (QgsSymbolLayer.Property) –
property (QgsProperty) –
- setEnabled(self, enabled: bool)¶
Sets whether symbol layer is enabled and should be drawn. Disabled layers are not drawn, but remain part of the symbol and can be re-enabled when desired.
See also
- Parameters:
enabled (bool) –
- setFillColor(self, color: QColor | Qt.GlobalColor | QGradient)¶
Sets the fill
color
for the symbol layer.This property is not supported by all symbol layer types, only those with a fill component.
See also
See also
See also
- Parameters:
color (Union[QColor) –
- setId(self, id: str)¶
Set symbol layer identifier This id has to be unique in the whole project
New in version 3.30.
- Parameters:
id (str) –
- setLocked(self, locked: bool)¶
Sets whether the layer’s colors are locked.
If
locked
isTrue
then the symbol layer colors are locked and the layer will ignore any symbol-level color changes.See also
- Parameters:
locked (bool) –
- setMapUnitScale(self, scale: QgsMapUnitScale)¶
- Parameters:
scale (QgsMapUnitScale) –
- setOutputUnit(self, unit: Qgis.RenderUnit)¶
Sets the units to use for sizes and widths within the symbol layer. Individual symbol layer subclasses will interpret this in different ways, e.g., a marker symbol layer may use it to specify the units for the marker size, while a line symbol layer may use it to specify the units for the line width.
- Parameters:
unit (Qgis.RenderUnit) – output units
See also
- setPaintEffect(self, effect: QgsPaintEffect)¶
Sets the current paint effect for the layer.
- Parameters:
effect (QgsPaintEffect) – paint effect. Ownership is transferred to the layer.
See also
- setRenderingPass(self, renderingPass: int)¶
Specifies the rendering pass in which this symbol layer should be rendered. The lower the number, the lower the symbol will be rendered. 0: first pass, 1: second pass, … Defaults to 0
- Parameters:
renderingPass (int) –
- setStrokeColor(self, color: QColor | Qt.GlobalColor | QGradient)¶
Sets the stroke
color
for the symbol layer.This property is not supported by all symbol layer types, only those with a stroke component.
See also
See also
See also
- Parameters:
color (Union[QColor) –
- setSubSymbol(self, symbol: QgsSymbol) bool ¶
Sets layer’s subsymbol. takes ownership of the passed symbol
- Parameters:
symbol (QgsSymbol) –
- Return type:
bool
- setUserFlags(self, flags: Qgis.SymbolLayerUserFlags | Qgis.SymbolLayerUserFlag)¶
Sets user-controlled
flags
which control the symbol layer’s behavior.See also
New in version 3.34.
- Parameters:
flags (Union[Qgis.SymbolLayerUserFlags) –
- shouldRenderUsingSelectionColor(self, context: QgsSymbolRenderContext) bool ¶
Returns
True
if the symbol layer should be rendered using the selection color from the render context.New in version 3.34.
- Parameters:
context (QgsSymbolRenderContext) –
- Return type:
bool
- startFeatureRender(self, feature: QgsFeature, context: QgsRenderContext)¶
Called before the layer will be rendered for a particular
feature
.This is always followed by a call to
stopFeatureRender()
after the feature has been completely rendered (i.e. all parts have been rendered).The default implementation does nothing.
Note
In some circumstances,
startFeatureRender()
andstopFeatureRender()
may not be called before a symbol layer is rendered. E.g., when a symbol layer is being rendered in isolation and not as a result of rendering a feature (for instance, when rendering a legend patch or other non-feature based shape).See also
See also
New in version 3.12.
- Parameters:
feature (QgsFeature) –
context (QgsRenderContext) –
- startRender(self, context: QgsSymbolRenderContext)¶
Called before a set of rendering operations commences on the supplied render
context
.This is always followed by a call to
stopRender()
after all rendering operations have been completed.Subclasses can use this method to prepare for a set of rendering operations, e.g. by pre-evaluating paths or images to render, and performing other one-time optimisations.
See also
See also
- Parameters:
context (QgsSymbolRenderContext) –
- stopFeatureRender(self, feature: QgsFeature, context: QgsRenderContext)¶
Called after the layer has been rendered for a particular
feature
.This is always preceded by a call to
startFeatureRender()
just before the feature will be rendered.The default implementation does nothing.
Note
In some circumstances,
startFeatureRender()
andstopFeatureRender()
may not be called before a symbol layer is rendered. E.g., when a symbol layer is being rendered in isolation and not as a result of rendering a feature (for instance, when rendering a legend patch or other non-feature based shape).See also
See also
New in version 3.12.
- Parameters:
feature (QgsFeature) –
context (QgsRenderContext) –
- stopRender(self, context: QgsSymbolRenderContext)¶
Called after a set of rendering operations has finished on the supplied render
context
.This is always preceded by a call to
startRender()
before all rendering operations are commenced.Subclasses can use this method to cleanup after a set of rendering operations.
See also
See also
- Parameters:
context (QgsSymbolRenderContext) –
- strokeColor(self) QColor ¶
Returns the stroke color for the symbol layer.
This property is not supported by all symbol layer types, only those with a stroke component. Symbol layers without a stroke component will return an invalid QColor.
See also
See also
See also
- Return type:
QColor
- toSld(self, doc: QDomDocument, element: QDomElement, props: Dict[str, Any])¶
Saves the symbol layer as SLD
- Parameters:
doc (QDomDocument) –
element (QDomElement) –
props (Dict[str) –
- type(self) Qgis.SymbolType ¶
- Return type:
- usedAttributes(self, context: QgsRenderContext) Set[str] ¶
Returns the set of attributes referenced by the layer. This includes attributes required by any data defined properties associated with the layer.
- Parameters:
context (QgsRenderContext) –
- Return type:
Set[str]
- userFlags(self) Qgis.SymbolLayerUserFlags ¶
Returns user-controlled flags which control the symbol layer’s behavior.
See also
New in version 3.34.
- Return type:
- usesMapUnits(self) bool ¶
Returns
True
if the symbol layer has any components which use map unit based sizes.New in version 3.18.
- Return type:
bool
- writeDxf(self, e: QgsDxfExport, mmMapUnitScaleFactor: float, layerName: str, context: QgsSymbolRenderContext, shift: QPointF | QPoint = QPointF(0, 0)) bool ¶
write as DXF
- Parameters:
e (QgsDxfExport) –
mmMapUnitScaleFactor (float) –
layerName (str) –
context (QgsSymbolRenderContext) –
shift (Union[QPointF) –
- Return type:
bool