QGIS API Documentation  3.14.0-Pi (9f7028fd23)
Public Member Functions | Static Public Member Functions | List of all members
QgsLineSymbol Class Reference

#include <qgssymbol.h>

Inheritance diagram for QgsLineSymbol:
Inheritance graph
[legend]

Public Member Functions

 QgsLineSymbol (const QgsSymbolLayerList &layers=QgsSymbolLayerList())
 Constructor for QgsLineSymbol, with the specified list of initial symbol layers. More...
 
QgsLineSymbolclone () const override
 Returns a deep copy of this symbol. More...
 
QgsProperty dataDefinedWidth () const
 Returns data defined width for whole symbol (including all symbol layers). More...
 
void renderPolyline (const QPolygonF &points, const QgsFeature *f, QgsRenderContext &context, int layer=-1, bool selected=false)
 Renders the symbol along the line joining points, using the given render context. More...
 
void setDataDefinedWidth (const QgsProperty &property)
 Set data defined width for whole symbol (including all symbol layers). More...
 
void setWidth (double width)
 Sets the width for the whole line symbol. More...
 
double width () const
 Returns the estimated width for the whole symbol, which is the maximum width of all marker symbol layers in the symbol. More...
 
double width (const QgsRenderContext &context) const
 Returns the symbol width, in painter units. More...
 
- Public Member Functions inherited from QgsSymbol
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...
 
QImage bigSymbolPreviewImage (QgsExpressionContext *expressionContext=nullptr)
 Returns a large (roughly 100x100 pixel) preview image for the symbol. 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...
 
QColor color () const
 Returns the symbol's color. 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...
 
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...
 
const Q_DECL_DEPRECATED 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, int currentVertexMarkerType=0, double currentVertexMarkerSize=0.0) SIP_THROW(QgsCsException)
 Render a feature. More...
 
RenderHints 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 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 (RenderHints hints)
 Sets rendering hint flags for the symbol. More...
 
void startRender (QgsRenderContext &context, const QgsFields &fields=QgsFields())
 Begins the rendering process for the symbol. 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, QgsStringMap props) const
 Converts the symbol to a SLD representation. More...
 
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...
 

Static Public Member Functions

static QgsLineSymbolcreateSimple (const QgsStringMap &properties)
 Create a line symbol with one symbol layer: SimpleLine with specified properties. More...
 
- Static Public Member Functions inherited from QgsSymbol
static QgsSymboldefaultSymbol (QgsWkbTypes::GeometryType geomType)
 Returns a new default symbol for the specified geometry type. More...
 

Additional Inherited Members

- Public Types inherited from QgsSymbol
enum  RenderHint { DynamicRotation = 2 }
 Flags controlling behavior of symbols during rendering. More...
 
enum  ScaleMethod { ScaleArea, ScaleDiameter }
 Scale method. More...
 
enum  SymbolType { Marker, Line, Fill, Hybrid }
 Type of the symbol. More...
 
- Protected Member Functions inherited from QgsSymbol
 QgsSymbol (SymbolType type, const QgsSymbolLayerList &layers)
 
QgsSymbolLayerList cloneLayers () const
 Retrieve a cloned list of all layers that make up this symbol. More...
 
void renderUsingLayer (QgsSymbolLayer *layer, QgsSymbolRenderContext &context)
 Renders a context using a particular symbol layer without passing in a geometry. More...
 
void renderVertexMarker (QPointF pt, QgsRenderContext &context, int currentVertexMarkerType, double currentVertexMarkerSize)
 Render editing vertex marker at specified point. More...
 
- Static Protected Member Functions inherited from QgsSymbol
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 inherited from QgsSymbol
bool mClipFeaturesToExtent = true
 
bool mForceRHR = false
 
const Q_DECL_DEPRECATED QgsVectorLayermLayer = nullptr
 
QgsSymbolLayerList mLayers
 
qreal mOpacity = 1.0
 Symbol opacity (in the range 0 - 1) More...
 
RenderHints mRenderHints
 
SymbolType mType
 

Detailed Description

A line symbol type, for rendering LineString and MultiLineString geometries.

Definition at line 1117 of file qgssymbol.h.

Constructor & Destructor Documentation

◆ QgsLineSymbol()

QgsLineSymbol::QgsLineSymbol ( const QgsSymbolLayerList layers = QgsSymbolLayerList())

Constructor for QgsLineSymbol, with the specified list of initial symbol layers.

Ownership of the layers are transferred to the symbol.

Definition at line 1912 of file qgssymbol.cpp.

Member Function Documentation

◆ clone()

QgsLineSymbol * QgsLineSymbol::clone ( ) const
overridevirtual

Returns a deep copy of this symbol.

Ownership is transferred to the caller.

Implements QgsSymbol.

Definition at line 2139 of file qgssymbol.cpp.

◆ createSimple()

QgsLineSymbol * QgsLineSymbol::createSimple ( const QgsStringMap properties)
static

Create a line symbol with one symbol layer: SimpleLine with specified properties.

This is a convenience method for easier creation of line symbols.

Definition at line 1429 of file qgssymbol.cpp.

◆ dataDefinedWidth()

QgsProperty QgsLineSymbol::dataDefinedWidth ( ) const

Returns data defined width for whole symbol (including all symbol layers).

Returns
data defined width, or invalid property if size is not set at the line level. Caller takes responsibility for deleting the returned object.
See also
setDataDefinedWidth
Since
QGIS 3.0

Definition at line 2017 of file qgssymbol.cpp.

◆ renderPolyline()

void QgsLineSymbol::renderPolyline ( const QPolygonF &  points,
const QgsFeature f,
QgsRenderContext context,
int  layer = -1,
bool  selected = false 
)

Renders the symbol along the line joining points, using the given render context.

The f argument is used to pass the feature currently being rendered (when available).

If only a single symbol layer from the symbol should be rendered, it should be specified in the layer argument. A layer of -1 indicates that all symbol layers should be rendered.

If selected is true then the symbol will be drawn using the "selected feature" style and colors instead of the symbol's normal style.

Definition at line 2071 of file qgssymbol.cpp.

◆ setDataDefinedWidth()

void QgsLineSymbol::setDataDefinedWidth ( const QgsProperty property)

Set data defined width for whole symbol (including all symbol layers).

See also
dataDefinedWidth()
Since
QGIS 3.0

Definition at line 1981 of file qgssymbol.cpp.

◆ setWidth()

void QgsLineSymbol::setWidth ( double  width)

Sets the width for the whole line symbol.

Individual symbol layer sizes will be scaled to maintain their current relative size to the whole symbol size.

See also
width()

Definition at line 1919 of file qgssymbol.cpp.

◆ width() [1/2]

double QgsLineSymbol::width ( ) const

Returns the estimated width for the whole symbol, which is the maximum width of all marker symbol layers in the symbol.

Warning
This returned value is inaccurate if the symbol consists of multiple symbol layers with different width units. Use the overload accepting a QgsRenderContext argument instead for accurate sizes in this case.
See also
setWidth()

Definition at line 1946 of file qgssymbol.cpp.

◆ width() [2/2]

double QgsLineSymbol::width ( const QgsRenderContext context) const

Returns the symbol width, in painter units.

This is the maximum width of all marker symbol layers in the symbol.

This method returns an accurate width by calculating the actual rendered width of each symbol layer using the provided render context.

See also
setWidth()
Since
QGIS 3.4.5

Definition at line 1966 of file qgssymbol.cpp.


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