QGIS API Documentation  3.17.0-Master (7a14973234)
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,
  MultiJustify
}
 
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,
  OutsidePolygons
}
 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 = 110,
  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,
  MaskEnabled = 104, MaskBufferSize = 105, MaskBufferUnit = 106, MaskOpacity = 107,
  MaskJoinStyle = 108, 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, PolygonLabelOutside = 109,
  LineAnchorPercent = 111, 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, QgsTextDocument *document=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...
 
const QgsLabelLineSettingslineSettings () const
 Returns the label line settings, which contain settings related to how the label engine places and formats labels for line features (or polygon features which are labeled in a "perimeter" style mode). More...
 
QgsLabelLineSettingslineSettings ()
 Returns the label line settings, which contain settings related to how the label engine places and formats labels for line features (or polygon features which are labeled in a "perimeter" style mode). More...
 
const QgsLabelObstacleSettingsobstacleSettings () const
 Returns the label obstacle settings. More...
 
QgsLabelObstacleSettingsobstacleSettings ()
 Returns the label obstacle settings. More...
 
QgsPalLayerSettingsoperator= (const QgsPalLayerSettings &s)
 copy operator - only copies the permanent members More...
 
QgsLabeling::PolygonPlacementFlags polygonPlacementFlags () const
 Returns the polygon placement flags, which dictate how polygon labels can be placed. 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...
 
QSet< QString > referencedFields (const QgsRenderContext &context) const
 Returns all field names referenced by the configuration (e.g. 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 setLineSettings (const QgsLabelLineSettings &settings)
 Sets the label line settings, which contain settings related to how the label engine places and formats labels for line features (or polygon features which are labeled in a "perimeter" style mode). More...
 
void setObstacleSettings (const QgsLabelObstacleSettings &settings)
 Sets the label obstacle settings. More...
 
void setPolygonPlacementFlags (QgsLabeling::PolygonPlacementFlags flags)
 Sets the polygon placement flags, which dictate how polygon labels can be placed. More...
 
void setThinningSettings (const QgsLabelThinningSettings &settings)
 Sets the label thinning settings. More...
 
void startRender (QgsRenderContext &context)
 Prepares the label settings for rendering. More...
 
void stopRender (QgsRenderContext &context)
 Finalises the label settings after use. More...
 
const QgsLabelThinningSettingsthinningSettings () const
 Returns the label thinning settings. More...
 
QgsLabelThinningSettingsthinningSettings ()
 Returns the label thinning settings. 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

double angleOffset = 0
 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 = false
 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 = false
 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 = 3
 Number of decimal places to show for numeric labels. More...
 
bool displayAll = false
 If true, all features will be labelled even when overlaps occur. More...
 
double dist = 0
 Distance from feature to the label. More...
 
QgsMapUnitScale distMapUnitScale
 Map unit scale for label feature distance. More...
 
QgsUnitTypes::RenderUnit distUnits = QgsUnitTypes::RenderMillimeters
 Units the distance from feature to the label. More...
 
bool drawLabels = true
 Whether to draw labels for this layer. More...
 
QgsGeometry extentGeom
 
int fieldIndex = 0
 
QString fieldName
 Name of field (or an expression) to use for label text. More...
 
bool fitInPolygonOnly = false
 true if only labels which completely fit within a polygon are allowed. More...
 
bool fontLimitPixelSize = false
 true if label sizes should be limited by pixel size. More...
 
int fontMaxPixelSize = 10000
 Maximum pixel size for showing rendered map unit labels (1 - 10000). More...
 
int fontMinPixelSize = 0
 Minimum pixel size for showing rendered map unit labels (1 - 1000). More...
 
bool formatNumbers = false
 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 = false
 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 = false
 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...
 
double maxCurvedCharAngleIn = 25.0
 Maximum angle between inside curved label characters (valid range 20.0 to 60.0). More...
 
double maxCurvedCharAngleOut = -25.0
 Maximum angle between outside curved label characters (valid range -20.0 to -95.0) More...
 
double maximumScale = 0
 The maximum map scale (i.e. More...
 
const QgsFeaturemCurFeat = nullptr
 
QgsFields mCurFields
 
int mFeatsRegPal = 0
 
int mFeatsSendingToPal = 0
 
int mFeaturesToLabel = 0
 
double minimumScale = 0
 The minimum map scale (i.e. More...
 
MultiLineAlign multilineAlign = MultiFollowPlacement
 Horizontal alignment of multi-line labels. More...
 
OffsetType offsetType = FromPoint
 Offset type for layer (only applies in certain placement modes) More...
 
QgsUnitTypes::RenderUnit offsetUnits = QgsUnitTypes::RenderMillimeters
 Units for offsets of label. More...
 
Placement placement = AroundPoint
 
bool plusSign = false
 Whether '+' signs should be prepended to positive numeric labels. More...
 
QVector< PredefinedPointPositionpredefinedPositionOrder
 Ordered list of predefined label positions for points. More...
 
bool preserveRotation = true
 True if label rotation should be preserved during label pin/unpin operations. More...
 
Q_DECL_DEPRECATED QColor previewBkgrdColor = Qt::white
 
int priority = 5
 Label priority. More...
 
QgsPointXY ptOne
 
QgsPointXY ptZero
 
QuadrantPosition quadOffset = QuadrantOver
 Sets the quadrant in which to offset labels from feature. More...
 
double repeatDistance = 0
 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 = QgsUnitTypes::RenderMillimeters
 Units for repeating labels for a single feature. More...
 
bool scaleVisibility = false
 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 = false
 True if substitutions should be applied. More...
 
QString wrapChar
 Wrapping character string. More...
 
const QgsMapToPixelxform = nullptr
 
double xOffset = 0
 Horizontal offset of label. More...
 
double yOffset = 0
 Vertical offset of label. More...
 
double zIndex = 0
 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 206 of file qgspallabeling.h.

Member Enumeration Documentation

◆ DirectionSymbols

Deprecated:
use QgsLabelLineSettings::DirectionSymbolPlacement instead
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 308 of file qgspallabeling.h.

◆ LinePlacementFlags

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

Deprecated:
Use QgsLabeling::LinePlacementFlags instead
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 271 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

MultiJustify 

Justified.

Definition at line 315 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 331 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 258 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.

OutsidePolygons 

Candidates are placed outside of polygon boundaries. Applies to polygon layers only. Since QGIS 3.14.

Definition at line 221 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 236 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 
MaskEnabled 

Whether the mask is enabled.

MaskBufferSize 

Mask buffer size.

MaskBufferUnit 

Mask buffer size unit.

MaskOpacity 

Mask opacity.

MaskJoinStyle 

Mask join style.

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.

PolygonLabelOutside 

Whether labels outside a polygon feature are permitted, or should be forced (since QGIS 3.14)

LineAnchorPercent 

Portion along line at which labels should be anchored (since QGIS 3.16)

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 344 of file qgspallabeling.h.

◆ QuadrantPosition

Enumerator
QuadrantAboveLeft 
QuadrantAbove 
QuadrantAboveRight 
QuadrantLeft 
QuadrantOver 
QuadrantRight 
QuadrantBelowLeft 
QuadrantBelow 
QuadrantBelowRight 

Definition at line 285 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 298 of file qgspallabeling.h.

Constructor & Destructor Documentation

◆ QgsPalLayerSettings() [1/2]

Q_NOWARN_DEPRECATED_PUSH QgsPalLayerSettings::QgsPalLayerSettings ( )

Definition at line 264 of file qgspallabeling.cpp.

◆ QgsPalLayerSettings() [2/2]

Q_NOWARN_DEPRECATED_POP Q_NOWARN_DEPRECATED_PUSH QgsPalLayerSettings::QgsPalLayerSettings ( const QgsPalLayerSettings s)

Definition at line 273 of file qgspallabeling.cpp.

◆ ~QgsPalLayerSettings()

QgsPalLayerSettings::~QgsPalLayerSettings ( )

Definition at line 560 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,
QgsTextDocument document = 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 1385 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 579 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 1256 of file qgspallabeling.cpp.

◆ lineSettings() [1/2]

const QgsLabelLineSettings& QgsPalLayerSettings::lineSettings ( ) const
inline

Returns the label line settings, which contain settings related to how the label engine places and formats labels for line features (or polygon features which are labeled in a "perimeter" style mode).

See also
setLineSettings()
Note
Not available in Python bindings
Since
QGIS 3.16

Definition at line 1022 of file qgspallabeling.h.

◆ lineSettings() [2/2]

QgsLabelLineSettings& QgsPalLayerSettings::lineSettings ( )
inline

Returns the label line settings, which contain settings related to how the label engine places and formats labels for line features (or polygon features which are labeled in a "perimeter" style mode).

See also
setLineSettings()
Since
QGIS 3.16

Definition at line 1031 of file qgspallabeling.h.

◆ obstacleSettings() [1/2]

const QgsLabelObstacleSettings& QgsPalLayerSettings::obstacleSettings ( ) const
inline

Returns the label obstacle settings.

See also
setObstacleSettings()
Note
Not available in Python bindings
Since
QGIS 3.10.2

Definition at line 1048 of file qgspallabeling.h.

◆ obstacleSettings() [2/2]

QgsLabelObstacleSettings& QgsPalLayerSettings::obstacleSettings ( )
inline

Returns the label obstacle settings.

See also
setObstacleSettings()
Since
QGIS 3.10.2

Definition at line 1055 of file qgspallabeling.h.

◆ operator=()

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

copy operator - only copies the permanent members

Definition at line 281 of file qgspallabeling.cpp.

◆ polygonPlacementFlags()

QgsLabeling::PolygonPlacementFlags QgsPalLayerSettings::polygonPlacementFlags ( ) const
inline

Returns the polygon placement flags, which dictate how polygon labels can be placed.

See also
setPolygonPlacementFlags()
Since
QGIS 3.14

Definition at line 626 of file qgspallabeling.h.

◆ 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 363 of file qgspallabeling.cpp.

◆ propertyDefinitions()

const QgsPropertiesDefinition & QgsPalLayerSettings::propertyDefinitions ( )
static

Returns the labeling property definitions.

Since
QGIS 3.0

Definition at line 573 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 904 of file qgspallabeling.cpp.

◆ referencedFields()

QSet< QString > QgsPalLayerSettings::referencedFields ( const QgsRenderContext context) const

Returns all field names referenced by the configuration (e.g.

field name or expression, data defined properties).

Since
QGIS 3.14

Definition at line 485 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 1648 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 1251 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.

◆ setLineSettings()

void QgsPalLayerSettings::setLineSettings ( const QgsLabelLineSettings settings)
inline

Sets the label line settings, which contain settings related to how the label engine places and formats labels for line features (or polygon features which are labeled in a "perimeter" style mode).

See also
lineSettings()
Since
QGIS 3.16

Definition at line 1040 of file qgspallabeling.h.

◆ setObstacleSettings()

void QgsPalLayerSettings::setObstacleSettings ( const QgsLabelObstacleSettings settings)
inline

Sets the label obstacle settings.

See also
obstacleSettings()
Since
QGIS 3.10.2

Definition at line 1062 of file qgspallabeling.h.

◆ setPolygonPlacementFlags()

void QgsPalLayerSettings::setPolygonPlacementFlags ( QgsLabeling::PolygonPlacementFlags  flags)
inline

Sets the polygon placement flags, which dictate how polygon labels can be placed.

See also
polygonPlacementFlags()
Since
QGIS 3.14

Definition at line 634 of file qgspallabeling.h.

◆ setThinningSettings()

void QgsPalLayerSettings::setThinningSettings ( const QgsLabelThinningSettings settings)
inline

Sets the label thinning settings.

See also
thinningSettings()
Since
QGIS 3.12

Definition at line 1084 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 521 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 544 of file qgspallabeling.cpp.

◆ thinningSettings() [1/2]

const QgsLabelThinningSettings& QgsPalLayerSettings::thinningSettings ( ) const
inline

Returns the label thinning settings.

See also
setThinningSettings()
Note
Not available in Python bindings
Since
QGIS 3.12

Definition at line 1070 of file qgspallabeling.h.

◆ thinningSettings() [2/2]

QgsLabelThinningSettings& QgsPalLayerSettings::thinningSettings ( )
inline

Returns the label thinning settings.

See also
setThinningSettings()
Since
QGIS 3.12

Definition at line 1077 of file qgspallabeling.h.

◆ writeXml()

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

Write settings into a DOM element.

Since
QGIS 2.12

Definition at line 1144 of file qgspallabeling.cpp.

Friends And Related Function Documentation

◆ QgsVectorLayer

friend class QgsVectorLayer
friend

Definition at line 1111 of file qgspallabeling.h.

Member Data Documentation

◆ angleOffset

double QgsPalLayerSettings::angleOffset = 0

Label rotation, in degrees clockwise.

Definition at line 745 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 577 of file qgspallabeling.h.

◆ centroidInside

bool QgsPalLayerSettings::centroidInside = false

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 647 of file qgspallabeling.h.

◆ centroidWhole

bool QgsPalLayerSettings::centroidWhole = false

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 640 of file qgspallabeling.h.

◆ ct

QgsCoordinateTransform QgsPalLayerSettings::ct

Definition at line 1101 of file qgspallabeling.h.

◆ decimals

int QgsPalLayerSettings::decimals = 3

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 607 of file qgspallabeling.h.

◆ displayAll

bool QgsPalLayerSettings::displayAll = false

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

Definition at line 823 of file qgspallabeling.h.

◆ dist

double QgsPalLayerSettings::dist = 0

Distance from feature to the label.

Units are specified via distUnits.

See also
distUnits
distMapUnitScale

Definition at line 667 of file qgspallabeling.h.

◆ distMapUnitScale

QgsMapUnitScale QgsPalLayerSettings::distMapUnitScale

Map unit scale for label feature distance.

See also
dist
distUnits

Definition at line 681 of file qgspallabeling.h.

◆ distUnits

Units the distance from feature to the label.

See also
dist
distMapUnitScale

Definition at line 674 of file qgspallabeling.h.

◆ drawLabels

bool QgsPalLayerSettings::drawLabels = true

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 530 of file qgspallabeling.h.

◆ extentGeom

QgsGeometry QgsPalLayerSettings::extentGeom

Definition at line 1105 of file qgspallabeling.h.

◆ fieldIndex

int QgsPalLayerSettings::fieldIndex = 0

Definition at line 1099 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 539 of file qgspallabeling.h.

◆ fitInPolygonOnly

bool QgsPalLayerSettings::fitInPolygonOnly = false

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

Definition at line 660 of file qgspallabeling.h.

◆ fontLimitPixelSize

bool QgsPalLayerSettings::fontLimitPixelSize = false

true if label sizes should be limited by pixel size.

See also
fontMinPixelSize
fontMaxPixelSize

Definition at line 806 of file qgspallabeling.h.

◆ fontMaxPixelSize

int QgsPalLayerSettings::fontMaxPixelSize = 10000

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

See also
fontLimitPixelSize
fontMinPixelSize

Definition at line 820 of file qgspallabeling.h.

◆ fontMinPixelSize

int QgsPalLayerSettings::fontMinPixelSize = 0

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

See also
fontLimitPixelSize
fontMaxPixelSize

Definition at line 813 of file qgspallabeling.h.

◆ formatNumbers

bool QgsPalLayerSettings::formatNumbers = false

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 600 of file qgspallabeling.h.

◆ geometryGenerator

QString QgsPalLayerSettings::geometryGenerator

The geometry generator expression. Null if disabled.

Definition at line 897 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 903 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 900 of file qgspallabeling.h.

◆ isExpression

bool QgsPalLayerSettings::isExpression = false

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

See also
fieldName

Definition at line 545 of file qgspallabeling.h.

◆ labelOffsetMapUnitScale

QgsMapUnitScale QgsPalLayerSettings::labelOffsetMapUnitScale

Map unit scale for label offset.

See also
xOffset
yOffset
offsetUnits

Definition at line 742 of file qgspallabeling.h.

◆ labelPerPart

bool QgsPalLayerSettings::labelPerPart = false

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

If false, only the largest part will be labeled.

Definition at line 832 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 909 of file qgspallabeling.h.

◆ maxCurvedCharAngleIn

double QgsPalLayerSettings::maxCurvedCharAngleIn = 25.0

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

See also
maxCurvedCharAngleOut

Definition at line 754 of file qgspallabeling.h.

◆ maxCurvedCharAngleOut

double QgsPalLayerSettings::maxCurvedCharAngleOut = -25.0

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

See also
maxCurvedCharAngleIn

Definition at line 760 of file qgspallabeling.h.

◆ maximumScale

double QgsPalLayerSettings::maximumScale = 0

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 787 of file qgspallabeling.h.

◆ mCurFeat

const QgsFeature* QgsPalLayerSettings::mCurFeat = nullptr

Definition at line 1097 of file qgspallabeling.h.

◆ mCurFields

QgsFields QgsPalLayerSettings::mCurFields

Definition at line 1098 of file qgspallabeling.h.

◆ mFeatsRegPal

int QgsPalLayerSettings::mFeatsRegPal = 0

Definition at line 1108 of file qgspallabeling.h.

◆ mFeatsSendingToPal

int QgsPalLayerSettings::mFeatsSendingToPal = 0

Definition at line 1107 of file qgspallabeling.h.

◆ mFeaturesToLabel

int QgsPalLayerSettings::mFeaturesToLabel = 0

Definition at line 1106 of file qgspallabeling.h.

◆ minimumScale

double QgsPalLayerSettings::minimumScale = 0

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 799 of file qgspallabeling.h.

◆ multilineAlign

MultiLineAlign QgsPalLayerSettings::multilineAlign = MultiFollowPlacement

Horizontal alignment of multi-line labels.

Definition at line 592 of file qgspallabeling.h.

◆ offsetType

OffsetType QgsPalLayerSettings::offsetType = FromPoint

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

Definition at line 684 of file qgspallabeling.h.

◆ offsetUnits

QgsUnitTypes::RenderUnit QgsPalLayerSettings::offsetUnits = QgsUnitTypes::RenderMillimeters

Units for offsets of label.

See also
xOffset
yOffset
labelOffsetMapUnitScale

Definition at line 734 of file qgspallabeling.h.

◆ placement

Placement QgsPalLayerSettings::placement = AroundPoint

Definition at line 618 of file qgspallabeling.h.

◆ plusSign

bool QgsPalLayerSettings::plusSign = false

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 614 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 655 of file qgspallabeling.h.

◆ preserveRotation

bool QgsPalLayerSettings::preserveRotation = true

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

Definition at line 748 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 555 of file qgspallabeling.h.

◆ priority

int QgsPalLayerSettings::priority = 5

Label priority.

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

Definition at line 766 of file qgspallabeling.h.

◆ ptOne

QgsPointXY QgsPalLayerSettings::ptOne

Definition at line 1104 of file qgspallabeling.h.

◆ ptZero

QgsPointXY QgsPalLayerSettings::ptZero

Definition at line 1103 of file qgspallabeling.h.

◆ quadOffset

QuadrantPosition QgsPalLayerSettings::quadOffset = QuadrantOver

Sets the quadrant in which to offset labels from feature.

Definition at line 710 of file qgspallabeling.h.

◆ repeatDistance

double QgsPalLayerSettings::repeatDistance = 0

Distance for repeating labels for a single feature.

See also
repeatDistanceUnit
repeatDistanceMapUnitScale

Definition at line 691 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 705 of file qgspallabeling.h.

◆ repeatDistanceUnit

QgsUnitTypes::RenderUnit QgsPalLayerSettings::repeatDistanceUnit = QgsUnitTypes::RenderMillimeters

Units for repeating labels for a single feature.

See also
repeatDistance
repeatDistanceMapUnitScale

Definition at line 698 of file qgspallabeling.h.

◆ scaleVisibility

bool QgsPalLayerSettings::scaleVisibility = false

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

See also
maximumScale
minimumScale

Definition at line 775 of file qgspallabeling.h.

◆ substitutions

QgsStringReplacementCollection QgsPalLayerSettings::substitutions

Substitution collection for automatic text substitution with labels.

Definition at line 558 of file qgspallabeling.h.

◆ upsidedownLabels

UpsideDownLabels QgsPalLayerSettings::upsidedownLabels = Upright

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

Definition at line 826 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 589 of file qgspallabeling.h.

◆ useSubstitutions

bool QgsPalLayerSettings::useSubstitutions = false

True if substitutions should be applied.

Definition at line 560 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 568 of file qgspallabeling.h.

◆ xform

const QgsMapToPixel* QgsPalLayerSettings::xform = nullptr

Definition at line 1100 of file qgspallabeling.h.

◆ xOffset

double QgsPalLayerSettings::xOffset = 0

Horizontal offset of label.

Units are specified via offsetUnits.

See also
yOffset
offsetUnits
labelOffsetMapUnitScale

Definition at line 718 of file qgspallabeling.h.

◆ yOffset

double QgsPalLayerSettings::yOffset = 0

Vertical offset of label.

Units are specified via offsetUnits.

See also
xOffset
offsetUnits
labelOffsetMapUnitScale

Definition at line 726 of file qgspallabeling.h.

◆ zIndex

double QgsPalLayerSettings::zIndex = 0

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 894 of file qgspallabeling.h.


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