Class: QgsSymbol¶
- class qgis.core.QgsSymbol¶
Bases:
sip.wrapper
Abstract base class for all rendered symbols.
Methods
Appends a symbol
layer
at the end of the current symbol layer list.Returns an image of the symbol at the specified
size
.Returns a large (roughly 100x100 pixel) preview image for the symbol.
Deletes the current layer at the specified
index
and replaces it withlayer
.Returns whether features drawn by the symbol will be clipped to the render context's extent.
Returns a deep copy of this symbol.
Retrieve a cloned list of all layers that make up this symbol.
Returns the symbol's color.
Returns a new default symbol for the specified geometry type.
Removes and deletes the symbol layer at the specified
index
.Draws an icon of the symbol that occupies an area given by
size
using the specifiedpainter
.Returns a string dump of the symbol's properties.
Export the symbol as an image format, to the specified
path
and with the givensize
.Returns
True
if polygon features drawn by the symbol will be reoriented to follow the standard right-hand-rule orientation, in which the area that is bounded by the polygon is to the right of the boundary.Returns whether the symbol utilizes any data defined properties.
Inserts a symbol
layer
to specifiedindex
.Returns the map unit scale for the symbol.
Returns the opacity for the symbol.
Returns the units to use for sizes and widths within the symbol.
Render a feature.
Returns the rendering hint flags for the symbol.
Renders a context using a particular symbol layer without passing in a geometry.
Render editing vertex marker at specified point
Sets whether features drawn by the symbol should be clipped to the render context's extent.
Sets the
color
for the symbol.Sets whether polygon features drawn by the symbol should be reoriented to follow the standard right-hand-rule orientation, in which the area that is bounded by the polygon is to the right of the boundary.
Sets the map unit
scale
for the symbol.Sets the
opacity
for the symbol.Sets the units to use for sizes and widths within the symbol.
Sets rendering hint flags for the symbol.
Begins the rendering process for the symbol.
Ends the rendering process.
Returns the symbol layer at the specified index.
Returns the total number of symbol layers contained in the symbol.
Returns the list of symbol layers contained in the symbol.
Returns the symbol render context.
Removes a symbol layer from the list and returns a pointer to it.
Converts the symbol to a SLD representation.
Returns the symbol's type.
Returns a list of attributes required to render this feature.
Returns
True
if the symbol has any components which use map unit based sizes.Attributes
- DynamicRotation = 2¶
- Fill = 2¶
- FlagIncludeCrosshairsForMarkerSymbols = 1¶
- Hybrid = 3¶
- Line = 1¶
- Marker = 0¶
- class PreviewFlag¶
Bases:
int
- class PreviewFlags¶
- class PreviewFlags(Union[QgsSymbol.PreviewFlags, QgsSymbol.PreviewFlag]) None
- class PreviewFlags(QgsSymbol.PreviewFlags) None
Bases:
sip.wrapper
- class RenderHint¶
Bases:
int
- class RenderHints¶
- class RenderHints(Union[QgsSymbol.RenderHints, QgsSymbol.RenderHint]) None
- class RenderHints(QgsSymbol.RenderHints) None
Bases:
sip.wrapper
- ScaleArea = 0¶
- ScaleDiameter = 1¶
- class ScaleMethod¶
Bases:
int
- class SymbolType¶
Bases:
int
- appendSymbolLayer(self, layer: QgsSymbolLayer) bool ¶
Appends a symbol
layer
at the end of the current symbol layer list. Ownership oflayer
is transferred to the symbol.- Return type
bool
- Returns
True
if the layer was successfully added,False
if the layer is not compatible with the symbol’stype()
.- Parameters
layer (QgsSymbolLayer) –
- asImage(self, size: QSize, customContext: QgsRenderContext = None) QImage ¶
Returns an image of the symbol at the specified
size
.Optionally a custom render context may be given in order to ensure that the preview icon exactly matches the settings from that context.
See also
See also
- Parameters
size (QSize) –
customContext (
QgsRenderContext
= None) –
- Return type
QImage
- bigSymbolPreviewImage(self, expressionContext: QgsExpressionContext = None, flags: Union[QgsSymbol.PreviewFlags, QgsSymbol.PreviewFlag] = QgsSymbol.FlagIncludeCrosshairsForMarkerSymbols) QImage ¶
Returns a large (roughly 100x100 pixel) preview image for the symbol.
- Parameters
expressionContext (
QgsExpressionContext
= None) – optional expression context, for evaluation of data defined symbol propertiesflags (Union[QgsSymbol.PreviewFlags) – optional flags to control how preview image is generated
See also
See also
- Return type
QImage
- changeSymbolLayer(self, index: int, layer: QgsSymbolLayer) bool ¶
Deletes the current layer at the specified
index
and replaces it withlayer
. Ownership oflayer
is transferred to the symbol.Returns
False
iflayer
is not compatible with the symbol’stype()
, orTrue
if the layer was successfully replaced.- Parameters
index (int) –
layer (QgsSymbolLayer) –
- Return type
bool
- clipFeaturesToExtent(self) bool ¶
Returns whether features drawn by the symbol will be clipped to the render context’s extent. If this option is enabled then features which are partially outside the extent will be clipped. This speeds up rendering of the feature, but may have undesirable side effects for certain symbol types.
- Return type
bool
- Returns
True
if features will be clipped
See also
New in version 2.9.
- clone(self) QgsSymbol ¶
Returns a deep copy of this symbol.
Ownership is transferred to the caller.
- Return type
- cloneLayers(self) List[QgsSymbolLayer] ¶
Retrieve a cloned list of all layers that make up this symbol. Ownership is transferred to the caller.
- Return type
List[QgsSymbolLayer]
- color(self) QColor ¶
Returns the symbol’s color.
For multi-layer symbols, this method returns the color of the first unlocked symbol layer.
See also
- Return type
QColor
- defaultSymbol(geomType: QgsWkbTypes.GeometryType) QgsSymbol ¶
Returns a new default symbol for the specified geometry type.
The caller takes ownership of the returned object.
- Parameters
geomType (QgsWkbTypes.GeometryType) –
- Return type
- deleteSymbolLayer(self, index: int) bool ¶
Removes and deletes the symbol layer at the specified
index
.- Parameters
index (int) –
- Return type
bool
- drawPreviewIcon(self, painter: QPainter, size: QSize, customContext: QgsRenderContext = None, selected: bool = False, expressionContext: QgsExpressionContext = None, patchShape: QgsLegendPatchShape = None)¶
Draws an icon of the symbol that occupies an area given by
size
using the specifiedpainter
.Optionally a custom render context may be given in order to ensure that the preview icon exactly matches the settings from that context.
- Parameters
painter (QPainter) – destination painter
size (QSize) – size of the icon
customContext (
QgsRenderContext
= None) – the context in which the rendering happensselected (bool = False) – set to
True
to render the symbol in a selected stateexpressionContext (
QgsExpressionContext
= None) – optional custom expression contextpatchShape (
QgsLegendPatchShape
= None) – optional patch shape to use for symbol preview. If not specified a default shape will be used instead.
See also
See also
Note
Parameter selected added in QGIS 3.10
New in version 2.6.
- dump(self) str ¶
Returns a string dump of the symbol’s properties.
- Return type
str
- exportImage(self, path: str, format: str, size: QSize)¶
Export the symbol as an image format, to the specified
path
and with the givensize
.If
format
is “SVG” then an SVG file will be created, otherwise a raster image of the specified format will be created.See also
See also
- Parameters
path (str) –
format (str) –
size (QSize) –
- forceRHR(self) bool ¶
Returns
True
if polygon features drawn by the symbol will be reoriented to follow the standard right-hand-rule orientation, in which the area that is bounded by the polygon is to the right of the boundary. In particular, the exterior ring is oriented in a clockwise direction and the interior rings in a counter-clockwise direction.See also
New in version 3.6.
- Return type
bool
- hasDataDefinedProperties(self) bool ¶
Returns whether the symbol utilizes any data defined properties.
New in version 2.12.
- Return type
bool
- insertSymbolLayer(self, index: int, layer: QgsSymbolLayer) bool ¶
Inserts a symbol
layer
to specifiedindex
. Ownership oflayer
is transferred to the symbol.- Parameters
index (int) – The index at which the layer should be added
layer (QgsSymbolLayer) – The symbol layer to add
- Return type
bool
- Returns
True
if the layer is added,False
if the index or the layer is bad
- layer(self) QgsVectorLayer ¶
Deprecated since version Will: be removed in QGIS 4.0
- Return type
- mapUnitScale(self) QgsMapUnitScale ¶
Returns the map unit scale for the symbol.
If the symbol consists of multiple layers, the map unit scale is only returned if all layers have the same scale settings. If the settings differ, a default constructed map unit scale is returned.
See also
- Return type
- opacity(self) float ¶
Returns the opacity for the symbol.
- Return type
float
- Returns
opacity value between 0 (fully transparent) and 1 (fully opaque)
See also
- outputUnit(self) QgsUnitTypes.RenderUnit ¶
Returns the units to use for sizes and widths within the symbol. Individual symbol layer definitions will interpret this in different ways, e.g., a marker symbol may use it to specify the units for the marker size, while a line symbol may use it to specify the units for the line width.
- Return type
- Returns
output unit, or QgsUnitTypes.RenderUnknownUnit if the symbol contains mixed units
See also
- renderFeature(self, feature: QgsFeature, context: QgsRenderContext, layer: int = - 1, selected: bool = False, drawVertexMarker: bool = False, currentVertexMarkerType: int = 0, currentVertexMarkerSize: float = 0)¶
Render a feature. Before calling this the
startRender()
method should be called to initialize the rendering process. After rendering all featuresstopRender()
must be called.- Parameters
feature (QgsFeature) –
context (QgsRenderContext) –
layer (int = -1) –
selected (bool = False) –
drawVertexMarker (bool = False) –
currentVertexMarkerType (int = 0) –
currentVertexMarkerSize (float = 0) –
- renderHints(self) QgsSymbol.RenderHints ¶
Returns the rendering hint flags for the symbol.
See also
- Return type
- renderUsingLayer(self, layer: QgsSymbolLayer, context: QgsSymbolRenderContext)¶
Renders a context using a particular symbol layer without passing in a geometry. This is used as fallback, if the symbol being rendered is not compatible with the specified layer. In such a case, this method can be called and will call the layer’s rendering method anyway but the geometry passed to the layer will be empty. This is required for layers that generate their own geometry from other information in the rendering context.
- Parameters
layer (QgsSymbolLayer) –
context (QgsSymbolRenderContext) –
- renderVertexMarker(self, pt: Union[QPointF, QPoint], context: QgsRenderContext, currentVertexMarkerType: int, currentVertexMarkerSize: float)¶
Render editing vertex marker at specified point
New in version 2.16.
- Parameters
pt (Union[QPointF) –
context (QgsRenderContext) –
currentVertexMarkerType (int) –
currentVertexMarkerSize (float) –
- setClipFeaturesToExtent(self, clipFeaturesToExtent: bool)¶
Sets whether features drawn by the symbol should be clipped to the render context’s extent. If this option is enabled then features which are partially outside the extent will be clipped. This speeds up rendering of the feature, but may have undesirable side effects for certain symbol types.
- Parameters
clipFeaturesToExtent (bool) – set to
True
to enable clipping (defaults toTrue
)
See also
New in version 2.9.
- setColor(self, color: Union[QColor, Qt.GlobalColor])¶
Sets the
color
for the symbol.Calling this method sets the color for each individual symbol layer contained within the symbol to
color
.Locked symbol layers are skipped and are left unchanged.
See also
- Parameters
color (Union[QColor) –
- setForceRHR(self, force: bool)¶
Sets whether polygon features drawn by the symbol should be reoriented to follow the standard right-hand-rule orientation, in which the area that is bounded by the polygon is to the right of the boundary. In particular, the exterior ring is oriented in a clockwise direction and the interior rings in a counter-clockwise direction.
See also
New in version 3.6.
- Parameters
force (bool) –
- setLayer(self, layer: QgsVectorLayer)¶
Note
the layer will be
None
after stopRenderDeprecated since version Will: be removed in QGIS 4.0
- Parameters
layer (QgsVectorLayer) –
- setMapUnitScale(self, scale: QgsMapUnitScale)¶
Sets the map unit
scale
for the symbol.Calling this method sets the scale for all symbol layers contained within the symbol.
See also
- Parameters
scale (QgsMapUnitScale) –
- setOpacity(self, opacity: float)¶
Sets the
opacity
for the symbol.- Parameters
opacity (float) – opacity value between 0 (fully transparent) and 1 (fully opaque)
See also
- setOutputUnit(self, unit: QgsUnitTypes.RenderUnit)¶
Sets the units to use for sizes and widths within the symbol. Individual symbol definitions will interpret this in different ways, e.g., a marker symbol may use it to specify the units for the marker size, while a line symbol may use it to specify the units for the line width.
- Parameters
unit (QgsUnitTypes.RenderUnit) – output units
See also
- setRenderHints(self, hints: Union[QgsSymbol.RenderHints, QgsSymbol.RenderHint])¶
Sets rendering hint flags for the symbol.
See also
- Parameters
hints (Union[QgsSymbol.RenderHints) –
- startRender(self, context: QgsRenderContext, fields: QgsFields = QgsFields())¶
Begins the rendering process for the symbol. This must be called before
renderFeature()
, and should be followed by a call tostopRender()
.- Parameters
context (QgsRenderContext) – render context which symbol will be drawn using
fields (
QgsFields
= QgsFields()) – fields for features to be rendered (usually the associated vector layer’s fields). Required for correct calculation of data defined overrides.
See also
- stopRender(self, context: QgsRenderContext)¶
Ends the rendering process. This should be called after rendering all desired features.
- Parameters
context (QgsRenderContext) – render context, must match the context specified when
startRender()
was called.
See also
- symbolLayer(self, layer: int) QgsSymbolLayer ¶
Returns the symbol layer at the specified index. An IndexError will be raised if no layer with the specified index exists.
See also
See also
New in version 2.7.
- Parameters
layer (int) –
- Return type
- symbolLayerCount(self) int ¶
Returns the total number of symbol layers contained in the symbol.
- Return type
int
- Returns
count of symbol layers
See also
See also
New in version 2.7.
- symbolLayers(self) List[QgsSymbolLayer] ¶
Returns the list of symbol layers contained in the symbol.
- Return type
List[QgsSymbolLayer]
- Returns
symbol layers list
See also
See also
New in version 2.7.
- symbolRenderContext(self) QgsSymbolRenderContext ¶
Returns the symbol render context. Only valid between startRender and stopRender calls.
- Return type
- Returns
The symbol render context
- takeSymbolLayer(self, index: int) QgsSymbolLayer ¶
Removes a symbol layer from the list and returns a pointer to it. Ownership of the layer is handed to the caller.
- Parameters
index (int) – The index of the layer to remove
- Return type
- Returns
A pointer to the removed layer
- toSld(self, doc: QDomDocument, element: QDomElement, props: Dict[str, str])¶
Converts the symbol to a SLD representation.
- Parameters
doc (QDomDocument) –
element (QDomElement) –
props (Dict[str) –
- type(self) QgsSymbol.SymbolType ¶
Returns the symbol’s type.
- Return type
- usedAttributes(self, context: QgsRenderContext) Set[str] ¶
Returns a list of attributes required to render this feature. This should include any attributes required by the symbology including the ones required by expressions.
- Parameters
context (QgsRenderContext) –
- Return type
Set[str]
- usesMapUnits(self) bool ¶
Returns
True
if the symbol has any components which use map unit based sizes.New in version 3.18.
- Return type
bool