QGIS API Documentation  3.21.0-Master (56b4176581)
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Friends | List of all members
QgsSymbol Class Referenceabstract

Abstract base class for all rendered symbols. More...

#include <qgssymbol.h>

Inheritance diagram for QgsSymbol:
Inheritance graph
[legend]

Public Types

enum  Property { PropertyOpacity }
 Data definable properties. More...
 

Public Member Functions

virtual ~QgsSymbol ()
 
bool appendSymbolLayer (QgsSymbolLayer *layer)
 Appends a symbol layer at the end of the current symbol layer list. More...
 
QImage asImage (QSize size, QgsRenderContext *customContext=nullptr)
 Returns an image of the symbol at the specified size. More...
 
Q_DECL_DEPRECATED QImage bigSymbolPreviewImage (QgsExpressionContext *expressionContext=nullptr, int flags=static_cast< int >(Qgis::SymbolPreviewFlag::FlagIncludeCrosshairsForMarkerSymbols))
 
QImage bigSymbolPreviewImage (QgsExpressionContext *expressionContext=nullptr, Qgis::SymbolPreviewFlags flags=Qgis::SymbolPreviewFlag::FlagIncludeCrosshairsForMarkerSymbols)
 Returns a large (roughly 100x100 pixel) preview image for the symbol. More...
 
bool canCauseArtifactsBetweenAdjacentTiles () const
 Returns true if the symbol 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. More...
 
bool changeSymbolLayer (int index, QgsSymbolLayer *layer)
 Deletes the current layer at the specified index and replaces it with layer. More...
 
bool clipFeaturesToExtent () const
 Returns whether features drawn by the symbol will be clipped to the render context's extent. More...
 
virtual QgsSymbolclone () const =0
 Returns a deep copy of this symbol. More...
 
QColor color () const
 Returns the symbol's color. More...
 
QgsPropertyCollectiondataDefinedProperties ()
 Returns a reference to the symbol's property collection, used for data defined overrides. More...
 
const QgsPropertyCollectiondataDefinedProperties () const
 Returns a reference to the symbol's property collection, used for data defined overrides. More...
 
bool deleteSymbolLayer (int index)
 Removes and deletes the symbol layer at the specified index. More...
 
void drawPreviewIcon (QPainter *painter, QSize size, QgsRenderContext *customContext=nullptr, bool selected=false, const QgsExpressionContext *expressionContext=nullptr, const QgsLegendPatchShape *patchShape=nullptr)
 Draws an icon of the symbol that occupies an area given by size using the specified painter. More...
 
QString dump () const
 Returns a string dump of the symbol's properties. More...
 
void exportImage (const QString &path, const QString &format, QSize size)
 Export the symbol as an image format, to the specified path and with the given size. More...
 
Qgis::SymbolFlags flags () const
 Returns flags for the symbol. More...
 
bool forceRHR () const
 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. More...
 
bool hasDataDefinedProperties () const
 Returns whether the symbol utilizes any data defined properties. More...
 
bool insertSymbolLayer (int index, QgsSymbolLayer *layer)
 Inserts a symbol layer to specified index. More...
 
Q_DECL_DEPRECATED const QgsVectorLayerlayer () const
 
QgsMapUnitScale mapUnitScale () const
 Returns the map unit scale for the symbol. More...
 
qreal opacity () const
 Returns the opacity for the symbol. More...
 
QgsUnitTypes::RenderUnit outputUnit () const
 Returns the units to use for sizes and widths within the symbol. More...
 
void renderFeature (const QgsFeature &feature, QgsRenderContext &context, int layer=-1, bool selected=false, bool drawVertexMarker=false, Qgis::VertexMarkerType currentVertexMarkerType=Qgis::VertexMarkerType::SemiTransparentCircle, double currentVertexMarkerSize=0.0) SIP_THROW(QgsCsException)
 Render a feature. More...
 
Qgis::SymbolRenderHints renderHints () const
 Returns the rendering hint flags for the symbol. More...
 
void setClipFeaturesToExtent (bool clipFeaturesToExtent)
 Sets whether features drawn by the symbol should be clipped to the render context's extent. More...
 
void setColor (const QColor &color)
 Sets the color for the symbol. More...
 
void setDataDefinedProperties (const QgsPropertyCollection &collection)
 Sets the symbol's property collection, used for data defined overrides. More...
 
void setDataDefinedProperty (Property key, const QgsProperty &property)
 Sets a data defined property for the symbol. More...
 
void setFlags (Qgis::SymbolFlags flags)
 Sets flags for the symbol. More...
 
void setForceRHR (bool force)
 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. More...
 
Q_DECL_DEPRECATED void setLayer (const QgsVectorLayer *layer)
 
void setMapUnitScale (const QgsMapUnitScale &scale)
 Sets the map unit scale for the symbol. More...
 
void setOpacity (qreal opacity)
 Sets the opacity for the symbol. More...
 
void setOutputUnit (QgsUnitTypes::RenderUnit unit)
 Sets the units to use for sizes and widths within the symbol. More...
 
void setRenderHints (Qgis::SymbolRenderHints hints)
 Sets rendering hint flags for the symbol. More...
 
void startFeatureRender (const QgsFeature &feature, QgsRenderContext &context, int layer=-1)
 Called before symbol layers will be rendered for a particular feature. More...
 
void startRender (QgsRenderContext &context, const QgsFields &fields=QgsFields())
 Begins the rendering process for the symbol. More...
 
void stopFeatureRender (const QgsFeature &feature, QgsRenderContext &context, int layer=-1)
 Called after symbol layers have been rendered for a particular feature. More...
 
void stopRender (QgsRenderContext &context)
 Ends the rendering process. More...
 
QgsSymbolLayersymbolLayer (int layer)
 Returns the symbol layer at the specified index. More...
 
const QgsSymbolLayersymbolLayer (int layer) const
 Returns the symbol layer at the specified index, const variant. More...
 
int symbolLayerCount () const
 Returns the total number of symbol layers contained in the symbol. More...
 
QgsSymbolLayerList symbolLayers ()
 Returns the list of symbol layers contained in the symbol. More...
 
QgsSymbolRenderContextsymbolRenderContext ()
 Returns the symbol render context. More...
 
QgsSymbolLayertakeSymbolLayer (int index)
 Removes a symbol layer from the list and returns a pointer to it. More...
 
void toSld (QDomDocument &doc, QDomElement &element, QVariantMap props) const
 Converts the symbol to a SLD representation. More...
 
Qgis::SymbolType type () const
 Returns the symbol's type. More...
 
QSet< QString > usedAttributes (const QgsRenderContext &context) const
 Returns a list of attributes required to render this feature. More...
 
bool usesMapUnits () const
 Returns true if the symbol has any components which use map unit based sizes. More...
 

Static Public Member Functions

static QgsSymboldefaultSymbol (QgsWkbTypes::GeometryType geomType)
 Returns a new default symbol for the specified geometry type. More...
 
static const QgsPropertiesDefinitionpropertyDefinitions ()
 Returns the symbol property definitions. More...
 
static Qgis::SymbolType symbolTypeForGeometryType (QgsWkbTypes::GeometryType type)
 Returns the default symbol type required for the specified geometry type. More...
 
static QString symbolTypeToString (Qgis::SymbolType type)
 Returns a translated string version of the specified symbol type. More...
 

Protected Member Functions

 QgsSymbol (Qgis::SymbolType type, const QgsSymbolLayerList &layers)
 Constructor for a QgsSymbol of the specified type. More...
 
QgsSymbolLayerList cloneLayers () const
 Retrieve a cloned list of all layers that make up this symbol. More...
 
void renderUsingLayer (QgsSymbolLayer *layer, QgsSymbolRenderContext &context, QgsWkbTypes::GeometryType geometryType=QgsWkbTypes::GeometryType::UnknownGeometry, const QPolygonF *points=nullptr, const QVector< QPolygonF > *rings=nullptr)
 Renders a context using a particular symbol layer without passing in a geometry. More...
 
void renderVertexMarker (QPointF pt, QgsRenderContext &context, Qgis::VertexMarkerType currentVertexMarkerType, double currentVertexMarkerSize)
 Render editing vertex marker at specified point. More...
 

Static Protected Member Functions

static QPolygonF _getLineString (QgsRenderContext &context, const QgsCurve &curve, bool clipToExtent=true)
 Creates a line string in screen coordinates from a QgsCurve in map coordinates. More...
 
static QPointF _getPoint (QgsRenderContext &context, const QgsPoint &point)
 Creates a point in screen coordinates from a QgsPoint in map coordinates. More...
 
static void _getPolygon (QPolygonF &pts, QVector< QPolygonF > &holes, QgsRenderContext &context, const QgsPolygon &polygon, bool clipToExtent=true, bool correctRingOrientation=false)
 Creates a polygon in screen coordinates from a QgsPolygonXYin map coordinates. More...
 
static QPolygonF _getPolygonRing (QgsRenderContext &context, const QgsCurve &curve, bool clipToExtent, bool isExteriorRing=false, bool correctRingOrientation=false)
 Creates a polygon ring in screen coordinates from a QgsCurve in map coordinates. More...
 

Protected Attributes

bool mClipFeaturesToExtent = true
 
bool mForceRHR = false
 
Q_DECL_DEPRECATED const QgsVectorLayermLayer = nullptr
 
QgsSymbolLayerList mLayers
 
qreal mOpacity = 1.0
 Symbol opacity (in the range 0 - 1) More...
 
Qgis::SymbolRenderHints mRenderHints
 
Qgis::SymbolFlags mSymbolFlags = Qgis::SymbolFlags()
 Symbol flags. More...
 
Qgis::SymbolType mType
 

Friends

class QgsFeatureRenderer
 

Detailed Description

Abstract base class for all rendered symbols.

Definition at line 37 of file qgssymbol.h.

Member Enumeration Documentation

◆ Property

Data definable properties.

Since
QGIS 3.18
Enumerator
PropertyOpacity 

Opacity.

Definition at line 74 of file qgssymbol.h.

Constructor & Destructor Documentation

◆ ~QgsSymbol()

QgsSymbol::~QgsSymbol ( )
virtual

Definition at line 269 of file qgssymbol.cpp.

◆ QgsSymbol()

Q_NOWARN_DEPRECATED_PUSH QgsSymbol::QgsSymbol ( Qgis::SymbolType  type,
const QgsSymbolLayerList layers 
)
protected

Constructor for a QgsSymbol of the specified type.

Ownership of layers will be transferred to the symbol.

Definition at line 62 of file qgssymbol.cpp.

Member Function Documentation

◆ _getLineString()

Q_NOWARN_DEPRECATED_POP QPolygonF QgsSymbol::_getLineString ( QgsRenderContext context,
const QgsCurve curve,
bool  clipToExtent = true 
)
staticprotected

Creates a line string in screen coordinates from a QgsCurve in map coordinates.

Definition at line 83 of file qgssymbol.cpp.

◆ _getPoint()

static QPointF QgsSymbol::_getPoint ( QgsRenderContext context,
const QgsPoint point 
)
inlinestaticprotected

Creates a point in screen coordinates from a QgsPoint in map coordinates.

Definition at line 639 of file qgssymbol.h.

◆ _getPolygon()

void QgsSymbol::_getPolygon ( QPolygonF &  pts,
QVector< QPolygonF > &  holes,
QgsRenderContext context,
const QgsPolygon polygon,
bool  clipToExtent = true,
bool  correctRingOrientation = false 
)
staticprotected

Creates a polygon in screen coordinates from a QgsPolygonXYin map coordinates.

If correctRingOrientation is true then the ring will be oriented to match standard ring orientation, e.g. clockwise for exterior rings and counter-clockwise for interior rings.

Definition at line 215 of file qgssymbol.cpp.

◆ _getPolygonRing()

QPolygonF QgsSymbol::_getPolygonRing ( QgsRenderContext context,
const QgsCurve curve,
bool  clipToExtent,
bool  isExteriorRing = false,
bool  correctRingOrientation = false 
)
staticprotected

Creates a polygon ring in screen coordinates from a QgsCurve in map coordinates.

If correctRingOrientation is true then the ring will be oriented to match standard ring orientation, e.g. clockwise for exterior rings and counter-clockwise for interior rings.

Definition at line 144 of file qgssymbol.cpp.

◆ appendSymbolLayer()

bool QgsSymbol::appendSymbolLayer ( QgsSymbolLayer layer)

Appends a symbol layer at the end of the current symbol layer list.

Ownership of layer is transferred to the symbol.

Returns
true if the layer was successfully added, false if the layer is not compatible with the symbol's type().

Definition at line 443 of file qgssymbol.cpp.

◆ asImage()

QImage QgsSymbol::asImage ( QSize  size,
QgsRenderContext customContext = nullptr 
)

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
exportImage()
drawPreviewIcon()

Definition at line 664 of file qgssymbol.cpp.

◆ bigSymbolPreviewImage() [1/2]

QImage QgsSymbol::bigSymbolPreviewImage ( QgsExpressionContext expressionContext = nullptr,
int  flags = static_cast< int >( Qgis::SymbolPreviewFlag::FlagIncludeCrosshairsForMarkerSymbols ) 
)
Deprecated:
use bigSymbolPreviewImageV2 instead.

Definition at line 723 of file qgssymbol.cpp.

◆ bigSymbolPreviewImage() [2/2]

QImage QgsSymbol::bigSymbolPreviewImage ( QgsExpressionContext expressionContext = nullptr,
Qgis::SymbolPreviewFlags  flags = Qgis::SymbolPreviewFlag::FlagIncludeCrosshairsForMarkerSymbols 
)

Returns a large (roughly 100x100 pixel) preview image for the symbol.

Parameters
expressionContextoptional expression context, for evaluation of data defined symbol properties
flagsoptional flags to control how preview image is generated
See also
asImage()
drawPreviewIcon()

Definition at line 678 of file qgssymbol.cpp.

◆ canCauseArtifactsBetweenAdjacentTiles()

bool QgsSymbol::canCauseArtifactsBetweenAdjacentTiles ( ) const

Returns true if the symbol 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.

Internally this calls QgsSymbolLayer::canCauseArtifactsBetweenAdjacentTiles() for all symbol layers in the symbol and returns true if any of the layers returned TRUE.

Since
QGIS 3.18

Definition at line 837 of file qgssymbol.cpp.

◆ changeSymbolLayer()

bool QgsSymbol::changeSymbolLayer ( int  index,
QgsSymbolLayer layer 
)

Deletes the current layer at the specified index and replaces it with layer.

Ownership of layer is transferred to the symbol.

Returns false if layer is not compatible with the symbol's type(), or true if the layer was successfully replaced.

Definition at line 473 of file qgssymbol.cpp.

◆ clipFeaturesToExtent()

bool QgsSymbol::clipFeaturesToExtent ( ) const
inline

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.

Returns
true if features will be clipped
See also
setClipFeaturesToExtent
Since
QGIS 2.9

Definition at line 497 of file qgssymbol.h.

◆ clone()

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

Returns a deep copy of this symbol.

Ownership is transferred to the caller.

Implemented in QgsMarkerSymbol, QgsLineSymbol, and QgsFillSymbol.

◆ cloneLayers()

QgsSymbolLayerList QgsSymbol::cloneLayers ( ) const
protected

Retrieve a cloned list of all layers that make up this symbol.

Ownership is transferred to the caller.

Definition at line 767 of file qgssymbol.cpp.

◆ color()

QColor QgsSymbol::color ( ) const

Returns the symbol's color.

For multi-layer symbols, this method returns the color of the first unlocked symbol layer.

See also
setColor()

Definition at line 551 of file qgssymbol.cpp.

◆ dataDefinedProperties() [1/2]

QgsPropertyCollection& QgsSymbol::dataDefinedProperties ( )
inline

Returns a reference to the symbol's property collection, used for data defined overrides.

See also
setDataDefinedProperties()
Property
Since
QGIS 3.18

Definition at line 543 of file qgssymbol.h.

◆ dataDefinedProperties() [2/2]

const QgsPropertyCollection& QgsSymbol::dataDefinedProperties ( ) const
inline

Returns a reference to the symbol's property collection, used for data defined overrides.

See also
setDataDefinedProperties()
Since
QGIS 3.18

Definition at line 550 of file qgssymbol.h.

◆ defaultSymbol()

QgsSymbol * QgsSymbol::defaultSymbol ( QgsWkbTypes::GeometryType  geomType)
static

Returns a new default symbol for the specified geometry type.

The caller takes ownership of the returned object.

Definition at line 355 of file qgssymbol.cpp.

◆ deleteSymbolLayer()

bool QgsSymbol::deleteSymbolLayer ( int  index)

Removes and deletes the symbol layer at the specified index.

Definition at line 453 of file qgssymbol.cpp.

◆ drawPreviewIcon()

void QgsSymbol::drawPreviewIcon ( QPainter *  painter,
QSize  size,
QgsRenderContext customContext = nullptr,
bool  selected = false,
const QgsExpressionContext expressionContext = nullptr,
const QgsLegendPatchShape patchShape = nullptr 
)

Draws an icon of the symbol that occupies an area given by size using the specified painter.

Optionally a custom render context may be given in order to ensure that the preview icon exactly matches the settings from that context.

Parameters
painterdestination painter
sizesize of the icon
customContextthe context in which the rendering happens
selectedset to true to render the symbol in a selected state
expressionContextoptional custom expression context
patchShapeoptional patch shape to use for symbol preview. If not specified a default shape will be used instead.
See also
exportImage()
asImage()
Note
Parameter selected added in QGIS 3.10
Since
QGIS 2.6

Definition at line 562 of file qgssymbol.cpp.

◆ dump()

QString QgsSymbol::dump ( ) const

Returns a string dump of the symbol's properties.

Definition at line 728 of file qgssymbol.cpp.

◆ exportImage()

void QgsSymbol::exportImage ( const QString &  path,
const QString &  format,
QSize  size 
)

Export the symbol as an image format, to the specified path and with the given size.

If format is "SVG" then an SVG file will be created, otherwise a raster image of the specified format will be created.

See also
asImage()
drawPreviewIcon()

Definition at line 644 of file qgssymbol.cpp.

◆ flags()

Qgis::SymbolFlags QgsSymbol::flags ( ) const
inline

Returns flags for the symbol.

See also
setFlags()
Since
QGIS 3.20

Definition at line 475 of file qgssymbol.h.

◆ forceRHR()

bool QgsSymbol::forceRHR ( ) const
inline

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
setForceRHR()
Since
QGIS 3.6

Definition at line 519 of file qgssymbol.h.

◆ hasDataDefinedProperties()

bool QgsSymbol::hasDataDefinedProperties ( ) const

Returns whether the symbol utilizes any data defined properties.

Since
QGIS 2.12

Definition at line 824 of file qgssymbol.cpp.

◆ insertSymbolLayer()

bool QgsSymbol::insertSymbolLayer ( int  index,
QgsSymbolLayer layer 
)

Inserts a symbol layer to specified index.

Ownership of layer is transferred to the symbol.

Parameters
indexThe index at which the layer should be added
layerThe symbol layer to add
Returns
true if the layer is added, false if the index or the layer is bad

Definition at line 430 of file qgssymbol.cpp.

◆ layer()

const QgsVectorLayer * QgsSymbol::layer ( ) const
Deprecated:
Will be removed in QGIS 4.0

Definition at line 854 of file qgssymbol.cpp.

◆ mapUnitScale()

QgsMapUnitScale QgsSymbol::mapUnitScale ( ) const

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
setMapUnitScale()

Definition at line 313 of file qgssymbol.cpp.

◆ opacity()

qreal QgsSymbol::opacity ( ) const
inline

Returns the opacity for the symbol.

Returns
opacity value between 0 (fully transparent) and 1 (fully opaque)
See also
setOpacity()

Definition at line 440 of file qgssymbol.h.

◆ outputUnit()

QgsUnitTypes::RenderUnit QgsSymbol::outputUnit ( ) const

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.

Returns
output unit, or QgsUnitTypes::RenderUnknownUnit if the symbol contains mixed units
See also
setOutputUnit()

Definition at line 275 of file qgssymbol.cpp.

◆ propertyDefinitions()

const QgsPropertiesDefinition & QgsSymbol::propertyDefinitions ( )
static

Returns the symbol property definitions.

Since
QGIS 3.18

Definition at line 263 of file qgssymbol.cpp.

◆ renderFeature()

PRIVATE void QgsSymbol::renderFeature ( const QgsFeature feature,
QgsRenderContext context,
int  layer = -1,
bool  selected = false,
bool  drawVertexMarker = false,
Qgis::VertexMarkerType  currentVertexMarkerType = Qgis::VertexMarkerType::SemiTransparentCircle,
double  currentVertexMarkerSize = 0.0 
)

Render a feature.

Before calling this the startRender() method should be called to initialize the rendering process. After rendering all features stopRender() must be called.

Definition at line 903 of file qgssymbol.cpp.

◆ renderHints()

Qgis::SymbolRenderHints QgsSymbol::renderHints ( ) const
inline

Returns the rendering hint flags for the symbol.

See also
setRenderHints()

Definition at line 459 of file qgssymbol.h.

◆ renderUsingLayer()

void QgsSymbol::renderUsingLayer ( QgsSymbolLayer layer,
QgsSymbolRenderContext context,
QgsWkbTypes::GeometryType  geometryType = QgsWkbTypes::GeometryType::UnknownGeometry,
const QPolygonF *  points = nullptr,
const QVector< QPolygonF > *  rings = nullptr 
)
protected

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.

Since QGIS 3.22, the optional geometryType, points and rings arguments can specify the original geometry type, points and rings in which are being rendered by the parent symbol.

Definition at line 781 of file qgssymbol.cpp.

◆ renderVertexMarker()

void QgsSymbol::renderVertexMarker ( QPointF  pt,
QgsRenderContext context,
Qgis::VertexMarkerType  currentVertexMarkerType,
double  currentVertexMarkerSize 
)
protected

Render editing vertex marker at specified point.

Since
QGIS 2.16

Definition at line 1449 of file qgssymbol.cpp.

◆ setClipFeaturesToExtent()

void QgsSymbol::setClipFeaturesToExtent ( bool  clipFeaturesToExtent)
inline

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
clipFeaturesToExtentset to true to enable clipping (defaults to TRUE)
See also
clipFeaturesToExtent
Since
QGIS 2.9

Definition at line 486 of file qgssymbol.h.

◆ setColor()

void QgsSymbol::setColor ( const QColor &  color)

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
color()

Definition at line 541 of file qgssymbol.cpp.

◆ setDataDefinedProperties()

void QgsSymbol::setDataDefinedProperties ( const QgsPropertyCollection collection)
inline

Sets the symbol's property collection, used for data defined overrides.

Parameters
collectionproperty collection. Existing properties will be replaced.
See also
dataDefinedProperties()
Since
QGIS 3.18

Definition at line 558 of file qgssymbol.h.

◆ setDataDefinedProperty()

void QgsSymbol::setDataDefinedProperty ( QgsSymbol::Property  key,
const QgsProperty property 
)

Sets a data defined property for the symbol.

Any existing property with the same key will be overwritten.

See also
dataDefinedProperties()
Property
Since
QGIS 3.18

Definition at line 819 of file qgssymbol.cpp.

◆ setFlags()

void QgsSymbol::setFlags ( Qgis::SymbolFlags  flags)
inline

Sets flags for the symbol.

See also
flags()
Since
QGIS 3.320

Definition at line 467 of file qgssymbol.h.

◆ setForceRHR()

void QgsSymbol::setForceRHR ( bool  force)
inline

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
forceRHR()
Since
QGIS 3.6

Definition at line 508 of file qgssymbol.h.

◆ setLayer()

void QgsSymbol::setLayer ( const QgsVectorLayer layer)
Note
the layer will be nullptr after stopRender
Deprecated:
Will be removed in QGIS 4.0

Definition at line 847 of file qgssymbol.cpp.

◆ setMapUnitScale()

void QgsSymbol::setMapUnitScale ( const QgsMapUnitScale scale)

Sets the map unit scale for the symbol.

Calling this method sets the scale for all symbol layers contained within the symbol.

See also
mapUnitScale()

Definition at line 346 of file qgssymbol.cpp.

◆ setOpacity()

void QgsSymbol::setOpacity ( qreal  opacity)
inline

Sets the opacity for the symbol.

Parameters
opacityopacity value between 0 (fully transparent) and 1 (fully opaque)
See also
opacity()

Definition at line 447 of file qgssymbol.h.

◆ setOutputUnit()

void QgsSymbol::setOutputUnit ( QgsUnitTypes::RenderUnit  unit)

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
unitoutput units
See also
outputUnit()

Definition at line 337 of file qgssymbol.cpp.

◆ setRenderHints()

void QgsSymbol::setRenderHints ( Qgis::SymbolRenderHints  hints)
inline

Sets rendering hint flags for the symbol.

See also
renderHints()

Definition at line 453 of file qgssymbol.h.

◆ startFeatureRender()

void QgsSymbol::startFeatureRender ( const QgsFeature feature,
QgsRenderContext context,
int  layer = -1 
)

Called before symbol layers 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).

Internally, this notifies all symbol layers which will be used via a call to QgsSymbolLayer::startFeatureRender().

Since
QGIS 3.20

Definition at line 1468 of file qgssymbol.cpp.

◆ startRender()

void QgsSymbol::startRender ( QgsRenderContext context,
const QgsFields fields = QgsFields() 
)

Begins the rendering process for the symbol.

This must be called before renderFeature(), and should be followed by a call to stopRender().

Parameters
contextrender context which symbol will be drawn using
fieldsfields for features to be rendered (usually the associated vector layer's fields). Required for correct calculation of data defined overrides.
See also
stopRender()

Definition at line 489 of file qgssymbol.cpp.

◆ stopFeatureRender()

void QgsSymbol::stopFeatureRender ( const QgsFeature feature,
QgsRenderContext context,
int  layer = -1 
)

Called after symbol layers have been rendered for a particular feature.

This is always preceded by a call to startFeatureRender() just before the feature will be rendered.

Internally, this notifies all symbol layers which were used via a call to QgsSymbolLayer::stopFeatureRender().

Since
QGIS 3.20

Definition at line 1492 of file qgssymbol.cpp.

◆ stopRender()

void QgsSymbol::stopRender ( QgsRenderContext context)

Ends the rendering process.

This should be called after rendering all desired features.

Parameters
contextrender context, must match the context specified when startRender() was called.
See also
startRender()

Definition at line 516 of file qgssymbol.cpp.

◆ symbolLayer() [1/2]

QgsSymbolLayer * QgsSymbol::symbolLayer ( int  layer)

Returns the symbol layer at the specified index.

See also
symbolLayers
symbolLayerCount
Since
QGIS 2.7

Definition at line 420 of file qgssymbol.cpp.

◆ symbolLayer() [2/2]

const QgsSymbolLayer * QgsSymbol::symbolLayer ( int  layer) const

Returns the symbol layer at the specified index, const variant.

See also
symbolLayers
symbolLayerCount
Since
QGIS 3.12

Definition at line 425 of file qgssymbol.cpp.

◆ symbolLayerCount()

int QgsSymbol::symbolLayerCount ( ) const
inline

Returns the total number of symbol layers contained in the symbol.

Returns
count of symbol layers
See also
symbolLayers
symbolLayer
Since
QGIS 2.7

Definition at line 160 of file qgssymbol.h.

◆ symbolLayers()

QgsSymbolLayerList QgsSymbol::symbolLayers ( )
inline

Returns the list of symbol layers contained in the symbol.

Returns
symbol layers list
See also
symbolLayer
symbolLayerCount
Since
QGIS 2.7

Definition at line 108 of file qgssymbol.h.

◆ symbolRenderContext()

QgsSymbolRenderContext * QgsSymbol::symbolRenderContext ( )

Returns the symbol render context.

Only valid between startRender and stopRender calls.

Returns
The symbol render context

Definition at line 1444 of file qgssymbol.cpp.

◆ symbolTypeForGeometryType()

Qgis::SymbolType QgsSymbol::symbolTypeForGeometryType ( QgsWkbTypes::GeometryType  type)
static

Returns the default symbol type required for the specified geometry type.

Since
QGIS 3.20

Definition at line 246 of file qgssymbol.cpp.

◆ symbolTypeToString()

QString QgsSymbol::symbolTypeToString ( Qgis::SymbolType  type)
static

Returns a translated string version of the specified symbol type.

Since
QGIS 3.20

Definition at line 230 of file qgssymbol.cpp.

◆ takeSymbolLayer()

QgsSymbolLayer * QgsSymbol::takeSymbolLayer ( int  index)

Removes a symbol layer from the list and returns a pointer to it.

Ownership of the layer is handed to the caller.

Parameters
indexThe index of the layer to remove
Returns
A pointer to the removed layer

Definition at line 464 of file qgssymbol.cpp.

◆ toSld()

void QgsSymbol::toSld ( QDomDocument &  doc,
QDomElement &  element,
QVariantMap  props 
) const

Converts the symbol to a SLD representation.

Definition at line 754 of file qgssymbol.cpp.

◆ type()

Qgis::SymbolType QgsSymbol::type ( ) const
inline

Returns the symbol's type.

Definition at line 97 of file qgssymbol.h.

◆ usedAttributes()

QSet< QString > QgsSymbol::usedAttributes ( const QgsRenderContext context) const

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.

Definition at line 802 of file qgssymbol.cpp.

◆ usesMapUnits()

bool QgsSymbol::usesMapUnits ( ) const

Returns true if the symbol has any components which use map unit based sizes.

Since
QGIS 3.18

Definition at line 296 of file qgssymbol.cpp.

Friends And Related Function Documentation

◆ QgsFeatureRenderer

friend class QgsFeatureRenderer
friend

Definition at line 52 of file qgssymbol.h.

Member Data Documentation

◆ mClipFeaturesToExtent

bool QgsSymbol::mClipFeaturesToExtent = true
protected

Definition at line 721 of file qgssymbol.h.

◆ mForceRHR

bool QgsSymbol::mForceRHR = false
protected

Definition at line 722 of file qgssymbol.h.

◆ mLayer

Q_DECL_DEPRECATED const QgsVectorLayer* QgsSymbol::mLayer = nullptr
protected

Definition at line 724 of file qgssymbol.h.

◆ mLayers

QgsSymbolLayerList QgsSymbol::mLayers
protected

Definition at line 707 of file qgssymbol.h.

◆ mOpacity

qreal QgsSymbol::mOpacity = 1.0
protected

Symbol opacity (in the range 0 - 1)

Definition at line 710 of file qgssymbol.h.

◆ mRenderHints

Qgis::SymbolRenderHints QgsSymbol::mRenderHints
protected

Definition at line 712 of file qgssymbol.h.

◆ mSymbolFlags

Qgis::SymbolFlags QgsSymbol::mSymbolFlags = Qgis::SymbolFlags()
protected

Symbol flags.

Since
QGIS 3.20

Definition at line 719 of file qgssymbol.h.

◆ mType

Qgis::SymbolType QgsSymbol::mType
protected

Definition at line 706 of file qgssymbol.h.


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