QGIS API Documentation  3.9.0-Master (635e245143)
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Friends | List of all members
QgsPalLayerSettings Class Reference

#include <qgspallabeling.h>

Public Types

enum  DirectionSymbols { SymbolLeftRight, SymbolAbove, SymbolBelow }
 
enum  LinePlacementFlags { OnLine = 1, AboveLine = 2, BelowLine = 4, MapOrientation = 8 }
 Line placement flags, which control how candidates are generated for a linear feature. More...
 
enum  MultiLineAlign { MultiLeft = 0, MultiCenter, MultiRight, MultiFollowPlacement }
 
enum  ObstacleType { PolygonInterior, PolygonBoundary, PolygonWhole }
 Valid obstacle types, which affect how features within the layer will act as obstacles for labels. More...
 
enum  OffsetType { FromPoint, FromSymbolBounds }
 Behavior modifier for label offset and distance, only applies in some label placement modes. More...
 
enum  Placement {
  AroundPoint, OverPoint, Line, Curved,
  Horizontal, Free, OrderedPositionsAroundPoint, PerimeterCurved
}
 Placement modes which determine how label candidates are generated for a feature. More...
 
enum  PredefinedPointPosition {
  TopLeft, TopSlightlyLeft, TopMiddle, TopSlightlyRight,
  TopRight, MiddleLeft, MiddleRight, BottomLeft,
  BottomSlightlyLeft, BottomMiddle, BottomSlightlyRight, BottomRight
}
 Positions for labels when using the QgsPalLabeling::OrderedPositionsAroundPoint placement mode. More...
 
enum  Property {
  Size = 0, Bold = 1, Italic = 2, Underline = 3,
  Color = 4, Strikeout = 5, Family = 6, FontStyle = 21,
  FontSizeUnit = 22, FontTransp = 18, FontOpacity = 92, FontCase = 27,
  FontLetterSpacing = 28, FontWordSpacing = 29, FontBlendMode = 30, MultiLineWrapChar = 31,
  AutoWrapLength = 101, MultiLineHeight = 32, MultiLineAlignment = 33, TextOrientation = 104,
  DirSymbDraw = 34, DirSymbLeft = 35, DirSymbRight = 36, DirSymbPlacement = 37,
  DirSymbReverse = 38, NumFormat = 39, NumDecimals = 40, NumPlusSign = 41,
  BufferDraw = 42, BufferSize = 7, BufferUnit = 43, BufferColor = 8,
  BufferTransp = 19, BufferOpacity = 94, BufferJoinStyle = 44, BufferBlendMode = 45,
  ShapeDraw = 46, ShapeKind = 47, ShapeSVGFile = 48, ShapeSizeType = 49,
  ShapeSizeX = 50, ShapeSizeY = 85, ShapeSizeUnits = 51, ShapeRotationType = 52,
  ShapeRotation = 53, ShapeOffset = 54, ShapeOffsetUnits = 55, ShapeRadii = 56,
  ShapeRadiiUnits = 57, ShapeTransparency = 63, ShapeOpacity = 93, ShapeBlendMode = 64,
  ShapeFillColor = 58, ShapeStrokeColor = 59, ShapeStrokeWidth = 60, ShapeStrokeWidthUnits = 61,
  ShapeJoinStyle = 62, ShadowDraw = 65, ShadowUnder = 66, ShadowOffsetAngle = 67,
  ShadowOffsetDist = 68, ShadowOffsetUnits = 69, ShadowRadius = 70, ShadowRadiusUnits = 71,
  ShadowTransparency = 72, ShadowOpacity = 95, ShadowScale = 73, ShadowColor = 74,
  ShadowBlendMode = 75, CentroidWhole = 76, OffsetQuad = 77, OffsetXY = 78,
  OffsetUnits = 80, LabelDistance = 13, DistanceUnits = 81, OffsetRotation = 82,
  CurvedCharAngleInOut = 83, PositionX = 9, PositionY = 10, Hali = 11,
  Vali = 12, Rotation = 14, LabelRotation = 96, RepeatDistance = 84,
  RepeatDistanceUnit = 86, Priority = 87, PredefinedPositionOrder = 91, LinePlacementOptions = 99,
  OverrunDistance = 102, LabelAllParts = 103, ScaleVisibility = 23, MinScale = 16,
  MinimumScale = 97, MaxScale = 17, MaximumScale = 98, FontLimitPixel = 24,
  FontMinPixel = 25, FontMaxPixel = 26, IsObstacle = 88, ObstacleFactor = 89,
  ZIndex = 90, CalloutDraw = 100, Show = 15, AlwaysShow = 20
}
 Data definable properties. More...
 
enum  QuadrantPosition {
  QuadrantAboveLeft, QuadrantAbove, QuadrantAboveRight, QuadrantLeft,
  QuadrantOver, QuadrantRight, QuadrantBelowLeft, QuadrantBelow,
  QuadrantBelowRight
}
 
enum  UpsideDownLabels { Upright, ShowDefined, ShowAll }
 

Public Member Functions

 QgsPalLayerSettings ()
 
 QgsPalLayerSettings (const QgsPalLayerSettings &s)
 
 ~QgsPalLayerSettings ()
 
void calculateLabelSize (const QFontMetricsF *fm, const QString &text, double &labelX, double &labelY, const QgsFeature *f=nullptr, QgsRenderContext *context=nullptr, double *rotatedLabelX=nullptr, double *rotatedLabelY=nullptr)
 Calculates the space required to render the provided text in map units. More...
 
QgsCalloutcallout () const
 Returns the label callout renderer, responsible for drawing label callouts. More...
 
QgsPropertyCollectiondataDefinedProperties ()
 Returns a reference to the label's property collection, used for data defined overrides. More...
 
const QgsPropertyCollectiondataDefinedProperties () const
 Returns a reference to the label's property collection, used for data defined overrides. More...
 
const QgsTextFormatformat () const
 Returns the label text formatting settings, e.g., font settings, buffer settings, etc. More...
 
QgsExpressiongetLabelExpression ()
 Returns the QgsExpression for this label settings. More...
 
QgsPalLayerSettingsoperator= (const QgsPalLayerSettings &s)
 copy operator - only copies the permanent members More...
 
bool prepare (QgsRenderContext &context, QSet< QString > &attributeNames, const QgsFields &fields, const QgsMapSettings &mapSettings, const QgsCoordinateReferenceSystem &crs)
 Prepare for registration of features. More...
 
void readXml (const QDomElement &elem, const QgsReadWriteContext &context)
 Read settings from a DOM element. More...
 
void registerFeature (const QgsFeature &f, QgsRenderContext &context, QgsLabelFeature **labelFeature=nullptr, QgsGeometry obstacleGeometry=QgsGeometry(), const QgsSymbol *symbol=nullptr)
 Register a feature for labeling. More...
 
void setCallout (QgsCallout *callout)
 Sets the label callout renderer, responsible for drawing label callouts. More...
 
void setDataDefinedProperties (const QgsPropertyCollection &collection)
 Sets the label's property collection, used for data defined overrides. More...
 
void setFormat (const QgsTextFormat &format)
 Sets the label text formatting settings, e.g., font settings, buffer settings, etc. More...
 
void startRender (QgsRenderContext &context)
 Prepares the label settings for rendering. More...
 
void stopRender (QgsRenderContext &context)
 Finalises the label settings after use. More...
 
QDomElement writeXml (QDomDocument &doc, const QgsReadWriteContext &context) const
 Write settings into a DOM element. More...
 

Static Public Member Functions

static QPixmap labelSettingsPreviewPixmap (const QgsPalLayerSettings &settings, QSize size, const QString &previewText=QString(), int padding=0)
 Returns a pixmap preview for label settings. More...
 
static const QgsPropertiesDefinitionpropertyDefinitions ()
 Returns the labeling property definitions. More...
 

Public Attributes

bool addDirectionSymbol
 If true, '<' or '>' (or custom strings set via leftDirectionSymbol and rightDirectionSymbol) will be automatically added to the label text, pointing in the direction of the line or polygon ring. More...
 
double angleOffset
 Label rotation, in degrees clockwise. More...
 
int autoWrapLength = 0
 If non-zero, indicates that label text should be automatically wrapped to (ideally) the specified number of characters. More...
 
bool centroidInside
 true if centroid positioned labels must be placed inside their corresponding feature polygon, or false if centroids which fall outside the polygon are permitted. More...
 
bool centroidWhole
 true if feature centroid should be calculated from the whole feature, or false if only the visible part of the feature should be considered. More...
 
QgsCoordinateTransform ct
 
int decimals
 Number of decimal places to show for numeric labels. More...
 
bool displayAll
 If true, all features will be labelled even when overlaps occur. More...
 
double dist
 Distance from feature to the label. More...
 
QgsMapUnitScale distMapUnitScale
 Map unit scale for label feature distance. More...
 
QgsUnitTypes::RenderUnit distUnits
 Units the distance from feature to the label. More...
 
bool drawLabels
 Whether to draw labels for this layer. More...
 
QgsGeometry extentGeom
 
int fieldIndex
 
QString fieldName
 Name of field (or an expression) to use for label text. More...
 
bool fitInPolygonOnly
 true if only labels which completely fit within a polygon are allowed. More...
 
bool fontLimitPixelSize
 true if label sizes should be limited by pixel size. More...
 
int fontMaxPixelSize
 Maximum pixel size for showing rendered map unit labels (1 - 10000). More...
 
int fontMinPixelSize
 Minimum pixel size for showing rendered map unit labels (1 - 1000). More...
 
bool formatNumbers
 Set to true to format numeric label text as numbers (e.g. More...
 
QString geometryGenerator
 The geometry generator expression. Null if disabled. More...
 
bool geometryGeneratorEnabled = false
 Defines if the geometry generator is enabled or not. If disabled, the standard geometry will be taken. More...
 
QgsWkbTypes::GeometryType geometryGeneratorType = QgsWkbTypes::GeometryType::PointGeometry
 The type of the result geometry of the geometry generator. More...
 
bool isExpression
 true if this label is made from a expression string, e.g., FieldName || 'mm' More...
 
QgsMapUnitScale labelOffsetMapUnitScale
 Map unit scale for label offset. More...
 
bool labelPerPart
 true if every part of a multi-part feature should be labeled. More...
 
QgsWkbTypes::GeometryType layerType = QgsWkbTypes::UnknownGeometry
 Geometry type of layers associated with these settings. More...
 
QString leftDirectionSymbol
 String to use for left direction arrows. More...
 
bool limitNumLabels
 true if the number of labels drawn should be limited. More...
 
double maxCurvedCharAngleIn
 Maximum angle between inside curved label characters (valid range 20.0 to 60.0). More...
 
double maxCurvedCharAngleOut
 Maximum angle between outside curved label characters (valid range -20.0 to -95.0) More...
 
double maximumScale
 The maximum map scale (i.e. More...
 
int maxNumLabels
 The maximum number of labels which should be drawn for this layer. More...
 
const QgsFeaturemCurFeat = nullptr
 
QgsFields mCurFields
 
bool mergeLines
 true if connected line features with identical label text should be merged prior to generating label positions. More...
 
int mFeatsRegPal = 0
 
int mFeatsSendingToPal = 0
 
int mFeaturesToLabel = 0
 
double minFeatureSize
 Minimum feature size (in millimeters) for a feature to be labelled. More...
 
double minimumScale
 The minimum map scale (i.e. More...
 
MultiLineAlign multilineAlign
 Horizontal alignment of multi-line labels. More...
 
bool obstacle
 true if features for layer are obstacles to labels of other layers. More...
 
double obstacleFactor
 Obstacle factor, where 1.0 = default, < 1.0 more likely to be covered by labels,

1.0 less likely to be covered

More...
 
ObstacleType obstacleType
 Controls how features act as obstacles for labels. More...
 
OffsetType offsetType
 Offset type for layer (only applies in certain placement modes) More...
 
QgsUnitTypes::RenderUnit offsetUnits
 Units for offsets of label. More...
 
double overrunDistance = 0
 Distance which labels are allowed to overrun past the start or end of line features. More...
 
QgsMapUnitScale overrunDistanceMapUnitScale
 Map unit scale for label overrun distance. More...
 
QgsUnitTypes::RenderUnit overrunDistanceUnit = QgsUnitTypes::RenderMillimeters
 Units for label overrun distance. More...
 
DirectionSymbols placeDirectionSymbol
 Placement option for direction symbols. More...
 
Placement placement
 
unsigned int placementFlags
 
bool plusSign
 Whether '+' signs should be prepended to positive numeric labels. More...
 
QVector< PredefinedPointPositionpredefinedPositionOrder
 Ordered list of predefined label positions for points. More...
 
bool preserveRotation
 True if label rotation should be preserved during label pin/unpin operations. More...
 
Q_DECL_DEPRECATED QColor previewBkgrdColor = Qt::white
 
int priority
 Label priority. More...
 
QgsPointXY ptOne
 
QgsPointXY ptZero
 
QuadrantPosition quadOffset
 Sets the quadrant in which to offset labels from feature. More...
 
double repeatDistance
 Distance for repeating labels for a single feature. More...
 
QgsMapUnitScale repeatDistanceMapUnitScale
 Map unit scale for repeating labels for a single feature. More...
 
QgsUnitTypes::RenderUnit repeatDistanceUnit
 Units for repeating labels for a single feature. More...
 
bool reverseDirectionSymbol
 True if direction symbols should be reversed. More...
 
QString rightDirectionSymbol
 String to use for right direction arrows. More...
 
bool scaleVisibility
 Set to true to limit label visibility to a range of scales. More...
 
QgsStringReplacementCollection substitutions
 Substitution collection for automatic text substitution with labels. More...
 
UpsideDownLabels upsidedownLabels = Upright
 Controls whether upside down labels are displayed and how they are handled. More...
 
bool useMaxLineLengthForAutoWrap = true
 If true, indicates that when auto wrapping label text the autoWrapLength length indicates the maximum ideal length of text lines. More...
 
bool useSubstitutions
 True if substitutions should be applied. More...
 
QString wrapChar
 Wrapping character string. More...
 
const QgsMapToPixelxform = nullptr
 
double xOffset
 Horizontal offset of label. More...
 
double yOffset
 Vertical offset of label. More...
 
double zIndex
 Z-Index of label, where labels with a higher z-index are rendered on top of labels with a lower z-index. More...
 

Friends

class QgsVectorLayer
 

Detailed Description

Definition at line 201 of file qgspallabeling.h.

Member Enumeration Documentation

◆ DirectionSymbols

Enumerator
SymbolLeftRight 

Place direction symbols on left/right of label.

SymbolAbove 

Place direction symbols on above label.

SymbolBelow 

Place direction symbols on below label.

Definition at line 298 of file qgspallabeling.h.

◆ LinePlacementFlags

Line placement flags, which control how candidates are generated for a linear feature.

Enumerator
OnLine 

Labels can be placed directly over a line feature.

AboveLine 

Labels can be placed above a line feature.

Unless MapOrientation is also specified this mode respects the direction of the line feature, so a line from right to left labels will have labels placed placed below the line feature.

BelowLine 

Labels can be placed below a line feature.

Unless MapOrientation is also specified this mode respects the direction of the line feature, so a line from right to left labels will have labels placed placed above the line feature.

MapOrientation 

Signifies that the AboveLine and BelowLine flags should respect the map's orientation rather than the feature's orientation.

For example, AboveLine will always result in label's being placed above a line, regardless of the line's direction.

Definition at line 264 of file qgspallabeling.h.

◆ MultiLineAlign

Enumerator
MultiLeft 
MultiCenter 
MultiRight 
MultiFollowPlacement 

Alignment follows placement of label, e.g., labels to the left of a feature will be drawn with right alignment

Definition at line 305 of file qgspallabeling.h.

◆ ObstacleType

Valid obstacle types, which affect how features within the layer will act as obstacles for labels.

Enumerator
PolygonInterior 

avoid placing labels over interior of polygon (prefer placing labels totally outside or just slightly inside polygon)

PolygonBoundary 

avoid placing labels over boundary of polygon (prefer placing outside or completely inside polygon)

PolygonWhole 

avoid placing labels over ANY part of polygon. Where PolygonInterior will prefer to place labels with the smallest area of intersection between the label and the polygon, PolygonWhole will penalise any label which intersects with the polygon by an equal amount, so that placing labels over any part of the polygon is avoided.

Definition at line 320 of file qgspallabeling.h.

◆ OffsetType

Behavior modifier for label offset and distance, only applies in some label placement modes.

Enumerator
FromPoint 

Offset distance applies from point geometry.

FromSymbolBounds 

Offset distance applies from rendered symbol bounds.

Definition at line 252 of file qgspallabeling.h.

◆ Placement

Placement modes which determine how label candidates are generated for a feature.

Enumerator
AroundPoint 

Arranges candidates in a circle around a point (or centroid of a polygon). Applies to point or polygon layers only.

OverPoint 

Arranges candidates over a point (or centroid of a polygon), or at a preset offset from the point. Applies to point or polygon layers only.

Line 

Arranges candidates parallel to a generalised line representing the feature or parallel to a polygon's perimeter. Applies to line or polygon layers only.

Curved 

Arranges candidates following the curvature of a line feature. Applies to line layers only.

Horizontal 

Arranges horizontal candidates scattered throughout a polygon feature. Applies to polygon layers only.

Free 

Arranges candidates scattered throughout a polygon feature. Candidates are rotated to respect the polygon's orientation. Applies to polygon layers only.

OrderedPositionsAroundPoint 

Candidates are placed in predefined positions around a point. Preference is given to positions with greatest cartographic appeal, e.g., top right, bottom right, etc. Applies to point layers only.

PerimeterCurved 

Arranges candidates following the curvature of a polygon's boundary. Applies to polygon layers only.

Definition at line 216 of file qgspallabeling.h.

◆ PredefinedPointPosition

Positions for labels when using the QgsPalLabeling::OrderedPositionsAroundPoint placement mode.

Enumerator
TopLeft 

Label on top-left of point.

TopSlightlyLeft 

Label on top of point, slightly left of center.

TopMiddle 

Label directly above point.

TopSlightlyRight 

Label on top of point, slightly right of center.

TopRight 

Label on top-right of point.

MiddleLeft 

Label on left of point.

MiddleRight 

Label on right of point.

BottomLeft 

Label on bottom-left of point.

BottomSlightlyLeft 

Label below point, slightly left of center.

BottomMiddle 

Label directly below point.

BottomSlightlyRight 

Label below point, slightly right of center.

BottomRight 

Label on bottom right of point.

Definition at line 230 of file qgspallabeling.h.

◆ Property

Data definable properties.

Enumerator
Size 

Label size.

Bold 

Use bold style.

Italic 

Use italic style.

Underline 

Use underline.

Color 

Text color.

Strikeout 

Use strikeout.

Family 

Font family.

FontStyle 

Font style name.

FontSizeUnit 

Font size units.

FontTransp 

Text transparency (deprecated)

FontOpacity 

Text opacity.

FontCase 

Label text case.

FontLetterSpacing 

Letter spacing.

FontWordSpacing 

Word spacing.

FontBlendMode 

Text blend mode.

MultiLineWrapChar 
AutoWrapLength 
MultiLineHeight 
MultiLineAlignment 
TextOrientation 
DirSymbDraw 
DirSymbLeft 
DirSymbRight 
DirSymbPlacement 
DirSymbReverse 
NumFormat 
NumDecimals 
NumPlusSign 
BufferDraw 
BufferSize 
BufferUnit 
BufferColor 
BufferTransp 

Buffer transparency (deprecated)

BufferOpacity 

Buffer opacity.

BufferJoinStyle 
BufferBlendMode 
ShapeDraw 
ShapeKind 
ShapeSVGFile 
ShapeSizeType 
ShapeSizeX 
ShapeSizeY 
ShapeSizeUnits 
ShapeRotationType 
ShapeRotation 
ShapeOffset 
ShapeOffsetUnits 
ShapeRadii 
ShapeRadiiUnits 
ShapeTransparency 

Shape transparency (deprecated)

ShapeOpacity 

Shape opacity.

ShapeBlendMode 
ShapeFillColor 
ShapeStrokeColor 
ShapeStrokeWidth 
ShapeStrokeWidthUnits 
ShapeJoinStyle 
ShadowDraw 
ShadowUnder 
ShadowOffsetAngle 
ShadowOffsetDist 
ShadowOffsetUnits 
ShadowRadius 
ShadowRadiusUnits 
ShadowTransparency 

Shadow transparency (deprecated)

ShadowOpacity 

Shadow opacity.

ShadowScale 
ShadowColor 
ShadowBlendMode 
CentroidWhole 
OffsetQuad 
OffsetXY 
OffsetUnits 
LabelDistance 
DistanceUnits 
OffsetRotation 
CurvedCharAngleInOut 
PositionX 

X-coordinate data defined label position.

PositionY 

Y-coordinate data defined label position.

Hali 

Horizontal alignment for data defined label position (Left, Center, Right)

Vali 

Vertical alignment for data defined label position (Bottom, Base, Half, Cap, Top)

Rotation 

Label rotation (deprecated, for old project compatibility only)

LabelRotation 

Label rotation.

RepeatDistance 
RepeatDistanceUnit 
Priority 
PredefinedPositionOrder 
LinePlacementOptions 

Line placement flags.

OverrunDistance 

Distance which labels can extend past either end of linear features.

LabelAllParts 

Whether all parts of multi-part features should be labeled.

ScaleVisibility 
MinScale 

Min scale (deprecated, for old project compatibility only)

MinimumScale 

Minimum map scale (ie most "zoomed out")

MaxScale 

Max scale (deprecated, for old project compatibility only)

MaximumScale 

Maximum map scale (ie most "zoomed in")

FontLimitPixel 
FontMinPixel 
FontMaxPixel 
IsObstacle 
ObstacleFactor 
ZIndex 
CalloutDraw 

Show callout.

Show 
AlwaysShow 

Definition at line 333 of file qgspallabeling.h.

◆ QuadrantPosition

Enumerator
QuadrantAboveLeft 
QuadrantAbove 
QuadrantAboveRight 
QuadrantLeft 
QuadrantOver 
QuadrantRight 
QuadrantBelowLeft 
QuadrantBelow 
QuadrantBelowRight 

Definition at line 278 of file qgspallabeling.h.

◆ UpsideDownLabels

Enumerator
Upright 

Upside-down labels (90 <= angle < 270) are shown upright.

ShowDefined 

Show upside down when rotation is layer- or data-defined.

ShowAll 

Show upside down for all labels, including dynamic ones.

Definition at line 291 of file qgspallabeling.h.

Constructor & Destructor Documentation

◆ QgsPalLayerSettings() [1/2]

Q_NOWARN_DEPRECATED_PUSH QgsPalLayerSettings::QgsPalLayerSettings ( )

Definition at line 250 of file qgspallabeling.cpp.

◆ QgsPalLayerSettings() [2/2]

Q_NOWARN_DEPRECATED_POP Q_NOWARN_DEPRECATED_PUSH QgsPalLayerSettings::QgsPalLayerSettings ( const QgsPalLayerSettings s)

Definition at line 318 of file qgspallabeling.cpp.

◆ ~QgsPalLayerSettings()

QgsPalLayerSettings::~QgsPalLayerSettings ( )

Definition at line 579 of file qgspallabeling.cpp.

Member Function Documentation

◆ calculateLabelSize()

void QgsPalLayerSettings::calculateLabelSize ( const QFontMetricsF *  fm,
const QString &  text,
double &  labelX,
double &  labelY,
const QgsFeature f = nullptr,
QgsRenderContext context = nullptr,
double *  rotatedLabelX = nullptr,
double *  rotatedLabelY = nullptr 
)

Calculates the space required to render the provided text in map units.

Results will be written to labelX and labelY. If the text orientation is set to rotation-based, the spaced taken to render vertically oriented text will be written to rotatedLabelX and rotatedLabelY .

Definition at line 1392 of file qgspallabeling.cpp.

◆ callout()

QgsCallout* QgsPalLayerSettings::callout ( ) const
inline

Returns the label callout renderer, responsible for drawing label callouts.

Ownership is not transferred.

See also
setCallout()
Since
QGIS 3.10

Definition at line 1002 of file qgspallabeling.h.

◆ dataDefinedProperties() [1/2]

QgsPropertyCollection& QgsPalLayerSettings::dataDefinedProperties ( )
inline

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

See also
setDataDefinedProperties()
Since
QGIS 3.0

Definition at line 959 of file qgspallabeling.h.

◆ dataDefinedProperties() [2/2]

const QgsPropertyCollection& QgsPalLayerSettings::dataDefinedProperties ( ) const
inline

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

See also
setDataDefinedProperties()
Property
Note
not available in Python bindings
Since
QGIS 3.0

Definition at line 968 of file qgspallabeling.h.

◆ format()

const QgsTextFormat& QgsPalLayerSettings::format ( ) const
inline

Returns the label text formatting settings, e.g., font settings, buffer settings, etc.

See also
setFormat()
Since
QGIS 3.0

Definition at line 984 of file qgspallabeling.h.

◆ getLabelExpression()

QgsExpression * QgsPalLayerSettings::getLabelExpression ( )

Returns the QgsExpression for this label settings.

May be nullptr if isExpression is false.

Definition at line 598 of file qgspallabeling.cpp.

◆ labelSettingsPreviewPixmap()

QPixmap QgsPalLayerSettings::labelSettingsPreviewPixmap ( const QgsPalLayerSettings settings,
QSize  size,
const QString &  previewText = QString(),
int  padding = 0 
)
static

Returns a pixmap preview for label settings.

Parameters
settingslabel settings
sizetarget pixmap size
previewTexttext to render in preview, or empty for default text
paddingspace between icon edge and color ramp
Since
QGIS 3.10

Definition at line 1268 of file qgspallabeling.cpp.

◆ operator=()

Q_NOWARN_DEPRECATED_POP QgsPalLayerSettings & QgsPalLayerSettings::operator= ( const QgsPalLayerSettings s)

copy operator - only copies the permanent members

Definition at line 326 of file qgspallabeling.cpp.

◆ prepare()

bool QgsPalLayerSettings::prepare ( QgsRenderContext context,
QSet< QString > &  attributeNames,
const QgsFields fields,
const QgsMapSettings mapSettings,
const QgsCoordinateReferenceSystem crs 
)

Prepare for registration of features.

The context, mapSettings and fields parameters give more information about the rendering environment. If target crs is not specified, the targetCrs from mapSettings will be taken. The parameter attributeNames should be updated to contain all the field names which the labeling requires for the rendering.

Since
QGIS 3.8

Definition at line 419 of file qgspallabeling.cpp.

◆ propertyDefinitions()

const QgsPropertiesDefinition & QgsPalLayerSettings::propertyDefinitions ( )
static

Returns the labeling property definitions.

Since
QGIS 3.0

Definition at line 592 of file qgspallabeling.cpp.

◆ readXml()

void QgsPalLayerSettings::readXml ( const QDomElement &  elem,
const QgsReadWriteContext context 
)

Read settings from a DOM element.

Since
QGIS 2.12

Definition at line 923 of file qgspallabeling.cpp.

◆ registerFeature()

void QgsPalLayerSettings::registerFeature ( const QgsFeature f,
QgsRenderContext context,
QgsLabelFeature **  labelFeature = nullptr,
QgsGeometry  obstacleGeometry = QgsGeometry(),
const QgsSymbol symbol = nullptr 
)

Register a feature for labeling.

Parameters
ffeature to label
contextrender context. The QgsExpressionContext contained within the render context must have already had the feature and fields sets prior to calling this method.
labelFeatureif using QgsLabelingEngine, this will receive the label feature. Not available in Python bindings.
obstacleGeometryoptional obstacle geometry, if a different geometry to the feature's geometry should be used as an obstacle for labels (e.g., if the feature has been rendered with an offset point symbol, the obstacle geometry should represent the bounds of the offset symbol). If not set, the feature's original geometry will be used as an obstacle for labels. Not available in Python bindings.
symbolfeature symbol to label (ownership is not transferred, and symbol must exist until the labeling is complete)

Definition at line 1628 of file qgspallabeling.cpp.

◆ setCallout()

void QgsPalLayerSettings::setCallout ( QgsCallout callout)

Sets the label callout renderer, responsible for drawing label callouts.

Ownership of callout is transferred to the settings.

See also
callout()
Since
QGIS 3.10

Definition at line 1263 of file qgspallabeling.cpp.

◆ setDataDefinedProperties()

void QgsPalLayerSettings::setDataDefinedProperties ( const QgsPropertyCollection collection)
inline

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

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

Definition at line 977 of file qgspallabeling.h.

◆ setFormat()

void QgsPalLayerSettings::setFormat ( const QgsTextFormat format)
inline

Sets the label text formatting settings, e.g., font settings, buffer settings, etc.

Parameters
formatlabel text format
See also
format()
Since
QGIS 3.0

Definition at line 992 of file qgspallabeling.h.

◆ startRender()

void QgsPalLayerSettings::startRender ( QgsRenderContext context)

Prepares the label settings for rendering.

This should be called before rendering any labels, and must be followed by a call to stopRender() in order to gracefully clean up symbols.

Since
QGIS 3.10

Definition at line 540 of file qgspallabeling.cpp.

◆ stopRender()

void QgsPalLayerSettings::stopRender ( QgsRenderContext context)

Finalises the label settings after use.

This must be called after a call to startRender(), in order to gracefully clean up symbols.

Since
QGIS 3.10

Definition at line 563 of file qgspallabeling.cpp.

◆ writeXml()

QDomElement QgsPalLayerSettings::writeXml ( QDomDocument &  doc,
const QgsReadWriteContext context 
) const

Write settings into a DOM element.

Since
QGIS 2.12

Definition at line 1159 of file qgspallabeling.cpp.

Friends And Related Function Documentation

◆ QgsVectorLayer

friend class QgsVectorLayer
friend

Definition at line 1039 of file qgspallabeling.h.

Member Data Documentation

◆ addDirectionSymbol

bool QgsPalLayerSettings::addDirectionSymbol

If true, '<' or '>' (or custom strings set via leftDirectionSymbol and rightDirectionSymbol) will be automatically added to the label text, pointing in the direction of the line or polygon ring.

This setting only affects line or perimeter based labels.

See also
leftDirectionSymbol
rightDirectionSymbol
placeDirectionSymbol
reverseDirectionSymbol

Definition at line 578 of file qgspallabeling.h.

◆ angleOffset

double QgsPalLayerSettings::angleOffset

Label rotation, in degrees clockwise.

Definition at line 763 of file qgspallabeling.h.

◆ autoWrapLength

int QgsPalLayerSettings::autoWrapLength = 0

If non-zero, indicates that label text should be automatically wrapped to (ideally) the specified number of characters.

If zero, auto wrapping is disabled.

See also
useMaxLineLengthForAutoWrap
Since
QGIS 3.4

Definition at line 551 of file qgspallabeling.h.

◆ centroidInside

bool QgsPalLayerSettings::centroidInside

true if centroid positioned labels must be placed inside their corresponding feature polygon, or false if centroids which fall outside the polygon are permitted.

Definition at line 641 of file qgspallabeling.h.

◆ centroidWhole

bool QgsPalLayerSettings::centroidWhole

true if feature centroid should be calculated from the whole feature, or false if only the visible part of the feature should be considered.

Definition at line 634 of file qgspallabeling.h.

◆ ct

QgsCoordinateTransform QgsPalLayerSettings::ct

Definition at line 1029 of file qgspallabeling.h.

◆ decimals

int QgsPalLayerSettings::decimals

Number of decimal places to show for numeric labels.

formatNumbers must be true for this setting to have an effect.

See also
formatNumbers

Definition at line 616 of file qgspallabeling.h.

◆ displayAll

bool QgsPalLayerSettings::displayAll

If true, all features will be labelled even when overlaps occur.

Definition at line 841 of file qgspallabeling.h.

◆ dist

double QgsPalLayerSettings::dist

Distance from feature to the label.

Units are specified via distUnits.

See also
distUnits
distMapUnitScale

Definition at line 661 of file qgspallabeling.h.

◆ distMapUnitScale

QgsMapUnitScale QgsPalLayerSettings::distMapUnitScale

Map unit scale for label feature distance.

See also
dist
distUnits

Definition at line 675 of file qgspallabeling.h.

◆ distUnits

QgsUnitTypes::RenderUnit QgsPalLayerSettings::distUnits

Units the distance from feature to the label.

See also
dist
distMapUnitScale

Definition at line 668 of file qgspallabeling.h.

◆ drawLabels

bool QgsPalLayerSettings::drawLabels

Whether to draw labels for this layer.

For some layers it may be desirable to register their features as obstacles for other labels without requiring labels to be drawn for the layer itself. In this case drawLabels can be set to false and obstacle set to true, which will result in the layer acting as an obstacle but having no labels of its own.

Since
QGIS 2.12

Definition at line 504 of file qgspallabeling.h.

◆ extentGeom

QgsGeometry QgsPalLayerSettings::extentGeom

Definition at line 1033 of file qgspallabeling.h.

◆ fieldIndex

int QgsPalLayerSettings::fieldIndex

Definition at line 1027 of file qgspallabeling.h.

◆ fieldName

QString QgsPalLayerSettings::fieldName

Name of field (or an expression) to use for label text.

If fieldName is an expression, then isExpression should be set to true.

See also
isExpression

Definition at line 513 of file qgspallabeling.h.

◆ fitInPolygonOnly

bool QgsPalLayerSettings::fitInPolygonOnly

true if only labels which completely fit within a polygon are allowed.

Definition at line 654 of file qgspallabeling.h.

◆ fontLimitPixelSize

bool QgsPalLayerSettings::fontLimitPixelSize

true if label sizes should be limited by pixel size.

See also
fontMinPixelSize
fontMaxPixelSize

Definition at line 824 of file qgspallabeling.h.

◆ fontMaxPixelSize

int QgsPalLayerSettings::fontMaxPixelSize

Maximum pixel size for showing rendered map unit labels (1 - 10000).

See also
fontLimitPixelSize
fontMinPixelSize

Definition at line 838 of file qgspallabeling.h.

◆ fontMinPixelSize

int QgsPalLayerSettings::fontMinPixelSize

Minimum pixel size for showing rendered map unit labels (1 - 1000).

See also
fontLimitPixelSize
fontMaxPixelSize

Definition at line 831 of file qgspallabeling.h.

◆ formatNumbers

bool QgsPalLayerSettings::formatNumbers

Set to true to format numeric label text as numbers (e.g.

inserting thousand separators and fixed number of decimal places).

See also
decimals
plusSign

Definition at line 609 of file qgspallabeling.h.

◆ geometryGenerator

QString QgsPalLayerSettings::geometryGenerator

The geometry generator expression. Null if disabled.

Definition at line 902 of file qgspallabeling.h.

◆ geometryGeneratorEnabled

bool QgsPalLayerSettings::geometryGeneratorEnabled = false

Defines if the geometry generator is enabled or not. If disabled, the standard geometry will be taken.

Definition at line 908 of file qgspallabeling.h.

◆ geometryGeneratorType

QgsWkbTypes::GeometryType QgsPalLayerSettings::geometryGeneratorType = QgsWkbTypes::GeometryType::PointGeometry

The type of the result geometry of the geometry generator.

Definition at line 905 of file qgspallabeling.h.

◆ isExpression

bool QgsPalLayerSettings::isExpression

true if this label is made from a expression string, e.g., FieldName || 'mm'

See also
fieldName

Definition at line 519 of file qgspallabeling.h.

◆ labelOffsetMapUnitScale

QgsMapUnitScale QgsPalLayerSettings::labelOffsetMapUnitScale

Map unit scale for label offset.

See also
xOffset
yOffset
offsetUnits

Definition at line 760 of file qgspallabeling.h.

◆ labelPerPart

bool QgsPalLayerSettings::labelPerPart

true if every part of a multi-part feature should be labeled.

If false, only the largest part will be labeled.

Definition at line 850 of file qgspallabeling.h.

◆ layerType

QgsWkbTypes::GeometryType QgsPalLayerSettings::layerType = QgsWkbTypes::UnknownGeometry

Geometry type of layers associated with these settings.

Since
QGIS 3.10

Definition at line 914 of file qgspallabeling.h.

◆ leftDirectionSymbol

QString QgsPalLayerSettings::leftDirectionSymbol

String to use for left direction arrows.

See also
addDirectionSymbol
rightDirectionSymbol

Definition at line 585 of file qgspallabeling.h.

◆ limitNumLabels

bool QgsPalLayerSettings::limitNumLabels

true if the number of labels drawn should be limited.

See also
maxNumLabels

Definition at line 862 of file qgspallabeling.h.

◆ maxCurvedCharAngleIn

double QgsPalLayerSettings::maxCurvedCharAngleIn

Maximum angle between inside curved label characters (valid range 20.0 to 60.0).

See also
maxCurvedCharAngleOut

Definition at line 772 of file qgspallabeling.h.

◆ maxCurvedCharAngleOut

double QgsPalLayerSettings::maxCurvedCharAngleOut

Maximum angle between outside curved label characters (valid range -20.0 to -95.0)

See also
maxCurvedCharAngleIn

Definition at line 778 of file qgspallabeling.h.

◆ maximumScale

double QgsPalLayerSettings::maximumScale

The maximum map scale (i.e.

most "zoomed in" scale) at which the labels will be visible. The scale value indicates the scale denominator, e.g. 1000.0 for a 1:1000 map. A scale of 0 indicates no maximum scale visibility.

This setting is only considered if scaleVisibility is true.

See also
minimumScale
scaleVisibility

Definition at line 805 of file qgspallabeling.h.

◆ maxNumLabels

int QgsPalLayerSettings::maxNumLabels

The maximum number of labels which should be drawn for this layer.

This only has an effect if limitNumLabels is true.

See also
limitNumLabels

Definition at line 869 of file qgspallabeling.h.

◆ mCurFeat

const QgsFeature* QgsPalLayerSettings::mCurFeat = nullptr

Definition at line 1025 of file qgspallabeling.h.

◆ mCurFields

QgsFields QgsPalLayerSettings::mCurFields

Definition at line 1026 of file qgspallabeling.h.

◆ mergeLines

bool QgsPalLayerSettings::mergeLines

true if connected line features with identical label text should be merged prior to generating label positions.

Definition at line 856 of file qgspallabeling.h.

◆ mFeatsRegPal

int QgsPalLayerSettings::mFeatsRegPal = 0

Definition at line 1036 of file qgspallabeling.h.

◆ mFeatsSendingToPal

int QgsPalLayerSettings::mFeatsSendingToPal = 0

Definition at line 1035 of file qgspallabeling.h.

◆ mFeaturesToLabel

int QgsPalLayerSettings::mFeaturesToLabel = 0

Definition at line 1034 of file qgspallabeling.h.

◆ minFeatureSize

double QgsPalLayerSettings::minFeatureSize

Minimum feature size (in millimeters) for a feature to be labelled.

Definition at line 874 of file qgspallabeling.h.

◆ minimumScale

double QgsPalLayerSettings::minimumScale

The minimum map scale (i.e.

most "zoomed out" scale) at which the labels will be visible. The scale value indicates the scale denominator, e.g. 1000.0 for a 1:1000 map. A scale of 0 indicates no minimum scale visibility.

This setting is only considered if scaleVisibility is true.

See also
maximumScale
scaleVisibility

Definition at line 817 of file qgspallabeling.h.

◆ multilineAlign

MultiLineAlign QgsPalLayerSettings::multilineAlign

Horizontal alignment of multi-line labels.

Definition at line 566 of file qgspallabeling.h.

◆ obstacle

bool QgsPalLayerSettings::obstacle

true if features for layer are obstacles to labels of other layers.

See also
obstacleFactor
obstacleType

Definition at line 881 of file qgspallabeling.h.

◆ obstacleFactor

double QgsPalLayerSettings::obstacleFactor

Obstacle factor, where 1.0 = default, < 1.0 more likely to be covered by labels,

1.0 less likely to be covered

See also
obstacle
obstacleType

Definition at line 889 of file qgspallabeling.h.

◆ obstacleType

ObstacleType QgsPalLayerSettings::obstacleType

Controls how features act as obstacles for labels.

See also
obstacle
obstacleFactor

Definition at line 896 of file qgspallabeling.h.

◆ offsetType

OffsetType QgsPalLayerSettings::offsetType

Offset type for layer (only applies in certain placement modes)

Definition at line 678 of file qgspallabeling.h.

◆ offsetUnits

QgsUnitTypes::RenderUnit QgsPalLayerSettings::offsetUnits

Units for offsets of label.

See also
xOffset
yOffset
labelOffsetMapUnitScale

Definition at line 752 of file qgspallabeling.h.

◆ overrunDistance

double QgsPalLayerSettings::overrunDistance = 0

Distance which labels are allowed to overrun past the start or end of line features.

See also
overrunDistanceUnit
repeatDistanceMapUnitScale
Since
QGIS 3.10

Definition at line 707 of file qgspallabeling.h.

◆ overrunDistanceMapUnitScale

QgsMapUnitScale QgsPalLayerSettings::overrunDistanceMapUnitScale

Map unit scale for label overrun distance.

See also
overrunDistance
overrunDistanceUnit
Since
QGIS 3.10

Definition at line 723 of file qgspallabeling.h.

◆ overrunDistanceUnit

QgsUnitTypes::RenderUnit QgsPalLayerSettings::overrunDistanceUnit = QgsUnitTypes::RenderMillimeters

Units for label overrun distance.

See also
overrunDistance
overrunDistanceMapUnitScale
Since
QGIS 3.10

Definition at line 715 of file qgspallabeling.h.

◆ placeDirectionSymbol

DirectionSymbols QgsPalLayerSettings::placeDirectionSymbol

Placement option for direction symbols.

Controls whether to place symbols to the left/right, above or below label.

See also
addDirectionSymbol

Definition at line 598 of file qgspallabeling.h.

◆ placement

Placement QgsPalLayerSettings::placement

Definition at line 627 of file qgspallabeling.h.

◆ placementFlags

unsigned int QgsPalLayerSettings::placementFlags

Definition at line 628 of file qgspallabeling.h.

◆ plusSign

bool QgsPalLayerSettings::plusSign

Whether '+' signs should be prepended to positive numeric labels.

formatNumbers must be true for this setting to have an effect.

See also
formatNumbers

Definition at line 623 of file qgspallabeling.h.

◆ predefinedPositionOrder

QVector< PredefinedPointPosition > QgsPalLayerSettings::predefinedPositionOrder

Ordered list of predefined label positions for points.

Positions earlier in the list will be prioritized over later positions. Only used when the placement is set to QgsPalLayerSettings::OrderedPositionsAroundPoint.

Note
not available in Python bindings

Definition at line 649 of file qgspallabeling.h.

◆ preserveRotation

bool QgsPalLayerSettings::preserveRotation

True if label rotation should be preserved during label pin/unpin operations.

Definition at line 766 of file qgspallabeling.h.

◆ previewBkgrdColor

Q_DECL_DEPRECATED QColor QgsPalLayerSettings::previewBkgrdColor = Qt::white
Deprecated:
since QGIS 3.10.

Use QgsTextFormat::previewBackgroundColor() instead.

Definition at line 529 of file qgspallabeling.h.

◆ priority

int QgsPalLayerSettings::priority

Label priority.

Valid ranges are from 0 to 10, where 0 = lowest priority and 10 = highest priority.

Definition at line 784 of file qgspallabeling.h.

◆ ptOne

QgsPointXY QgsPalLayerSettings::ptOne

Definition at line 1032 of file qgspallabeling.h.

◆ ptZero

QgsPointXY QgsPalLayerSettings::ptZero

Definition at line 1031 of file qgspallabeling.h.

◆ quadOffset

QuadrantPosition QgsPalLayerSettings::quadOffset

Sets the quadrant in which to offset labels from feature.

Definition at line 728 of file qgspallabeling.h.

◆ repeatDistance

double QgsPalLayerSettings::repeatDistance

Distance for repeating labels for a single feature.

See also
repeatDistanceUnit
repeatDistanceMapUnitScale

Definition at line 685 of file qgspallabeling.h.

◆ repeatDistanceMapUnitScale

QgsMapUnitScale QgsPalLayerSettings::repeatDistanceMapUnitScale

Map unit scale for repeating labels for a single feature.

See also
repeatDistance
repeatDistanceUnit

Definition at line 699 of file qgspallabeling.h.

◆ repeatDistanceUnit

QgsUnitTypes::RenderUnit QgsPalLayerSettings::repeatDistanceUnit

Units for repeating labels for a single feature.

See also
repeatDistance
repeatDistanceMapUnitScale

Definition at line 692 of file qgspallabeling.h.

◆ reverseDirectionSymbol

bool QgsPalLayerSettings::reverseDirectionSymbol

True if direction symbols should be reversed.

Definition at line 601 of file qgspallabeling.h.

◆ rightDirectionSymbol

QString QgsPalLayerSettings::rightDirectionSymbol

String to use for right direction arrows.

See also
addDirectionSymbol
leftDirectionSymbol

Definition at line 592 of file qgspallabeling.h.

◆ scaleVisibility

bool QgsPalLayerSettings::scaleVisibility

Set to true to limit label visibility to a range of scales.

See also
maximumScale
minimumScale

Definition at line 793 of file qgspallabeling.h.

◆ substitutions

QgsStringReplacementCollection QgsPalLayerSettings::substitutions

Substitution collection for automatic text substitution with labels.

Definition at line 532 of file qgspallabeling.h.

◆ upsidedownLabels

UpsideDownLabels QgsPalLayerSettings::upsidedownLabels = Upright

Controls whether upside down labels are displayed and how they are handled.

Definition at line 844 of file qgspallabeling.h.

◆ useMaxLineLengthForAutoWrap

bool QgsPalLayerSettings::useMaxLineLengthForAutoWrap = true

If true, indicates that when auto wrapping label text the autoWrapLength length indicates the maximum ideal length of text lines.

If false, then autoWrapLength indicates the ideal minimum length of text lines.

If autoWrapLength is 0 then this value has no effect.

See also
autoWrapLength
Since
QGIS 3.4

Definition at line 563 of file qgspallabeling.h.

◆ useSubstitutions

bool QgsPalLayerSettings::useSubstitutions

True if substitutions should be applied.

Definition at line 534 of file qgspallabeling.h.

◆ wrapChar

QString QgsPalLayerSettings::wrapChar

Wrapping character string.

If set, any occurrences of this string in the calculated label text will be replaced with new line characters.

Definition at line 542 of file qgspallabeling.h.

◆ xform

const QgsMapToPixel* QgsPalLayerSettings::xform = nullptr

Definition at line 1028 of file qgspallabeling.h.

◆ xOffset

double QgsPalLayerSettings::xOffset

Horizontal offset of label.

Units are specified via offsetUnits.

See also
yOffset
offsetUnits
labelOffsetMapUnitScale

Definition at line 736 of file qgspallabeling.h.

◆ yOffset

double QgsPalLayerSettings::yOffset

Vertical offset of label.

Units are specified via offsetUnits.

See also
xOffset
offsetUnits
labelOffsetMapUnitScale

Definition at line 744 of file qgspallabeling.h.

◆ zIndex

double QgsPalLayerSettings::zIndex

Z-Index of label, where labels with a higher z-index are rendered on top of labels with a lower z-index.

Definition at line 899 of file qgspallabeling.h.


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