Class: QgsRuleBasedLabeling

class qgis.core.QgsRuleBasedLabeling(root: QgsRuleBasedLabeling.Rule)

Bases: qgis._core.QgsAbstractVectorLayerLabeling

Constructs the labeling from given tree of rules (takes ownership)

New in version 3.0: Enums

Methods

clone

create

Create the instance from a DOM element with saved configuration

requiresAdvancedEffects

rootRule

save

setSettings

Set pal settings for a specific provider (takes ownership).

settings

subProviders

toSld

type

writeTextSymbolizer

Signals

Attributes

class Rule(settings: QgsPalLayerSettings, maximumScale: float = 0, minimumScale: float = 0, filterExp: str = '', description: str = '', elseRule: bool = False)

Bases: sip.wrapper

takes ownership of settings, settings may be None

New in version 3.0.

Filtered = 0
Inactive = 1
class RegisterResult

Bases: int

Registered = 2
active(self) → bool

Returns if this rule is active

Returns

True if the rule is active

appendChild(self, rule: QgsRuleBasedLabeling.Rule)

add child rule, take ownership, sets this as parent

children(self) → object

Returns all children rules of this rule

Returns

A list of rules

clone(self) → QgsRuleBasedLabeling.Rule

clone this rule, return new instance

create(ruleElem: QDomElement, context: QgsReadWriteContext) → QgsRuleBasedLabeling.Rule

Create a rule from an XML definition

Parameters
  • ruleElem – The XML rule element

  • context – reading context

Returns

A new rule

dependsOnScale(self) → bool

Determines if scale based labeling is active

Returns

True if scale based labeling is active

descendants(self) → object

Returns all children, grand-children, grand-grand-children, grand-gra… you get it

Returns

A list of descendant rules

description(self) → str

A human readable description for this rule

Returns

Description

filterExpression(self) → str

A filter that will check if this rule applies

Returns

An expression

findRuleByKey(self, key: str) → QgsRuleBasedLabeling.Rule

Try to find a rule given its unique key

insertChild(self, i: int, rule: QgsRuleBasedLabeling.Rule)

add child rule, take ownership, sets this as parent

isElse(self) → bool

Check if this rule is an ELSE rule

Returns

True if this rule is an else rule

maximumScale(self) → float

Returns the maximum map scale (i.e. most “zoomed in” scale) at which the label rule will be active. 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.

See also

minimumScale()

New in version 3.0.

minimumScale(self) → float

Returns the minimum map scale (i.e. most “zoomed out” scale) at which the label rule will be active. 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.

See also

maximumScale()

New in version 3.0.

parent(self) → QgsRuleBasedLabeling.Rule

The parent rule

Returns

Parent rule

removeChildAt(self, i: int)

delete child rule

requiresAdvancedEffects(self) → bool

Returns True if this rule or any of its children requires advanced composition effects to render.

ruleKey(self) → str

Unique rule identifier (for identification of rule within labeling, used as provider ID)

save(self, doc: QDomDocument, context: QgsReadWriteContext) → QDomElement

store labeling info to XML element

setActive(self, state: bool)

Sets if this rule is active

Parameters

state – Determines if the rule should be activated or deactivated

setDescription(self, description: str)

Set a human readable description for this rule

Parameters

description – Description

setFilterExpression(self, filterExp: str)

Set the expression used to check if a given feature shall be rendered with this rule

Parameters

filterExp – An expression

setIsElse(self, iselse: bool)

Sets if this rule is an ELSE rule

Parameters

iselse – If True, this rule is an ELSE rule

setMaximumScale(self, scale: float)

Sets the maximum map scale (i.e. most “zoomed in” scale) at which the rule will be active. 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.

See also

maximumScale()

setMinimumScale(self, scale: float)

Sets the minimum map scale (i.e. most “zoomed out” scale) at which the label rule will be active. 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.

See also

minimumScale()

setRuleKey(self, key: str)

Override the assigned rule key (should be used just internally by rule-based labeling)

setSettings(self, settings: QgsPalLayerSettings)

Sets new settings (or None). Deletes old settings if any.

settings(self) → QgsPalLayerSettings

Returns the labeling settings. May return None.

clone(self) → QgsRuleBasedLabeling
create(element: QDomElement, context: QgsReadWriteContext) → QgsRuleBasedLabeling

Create the instance from a DOM element with saved configuration

requiresAdvancedEffects(self) → bool
rootRule(self) → QgsRuleBasedLabeling.Rule
save(self, doc: QDomDocument, context: QgsReadWriteContext) → QDomElement
setSettings(self, settings: QgsPalLayerSettings, providerId: str = '')

Set pal settings for a specific provider (takes ownership).

Parameters
  • settings – Pal layer settings

  • providerId – The id of the provider

New in version 3.0.

settings(self, providerId: str = '') → QgsPalLayerSettings
subProviders(self) → List[str]
toSld(self, parent: QDomNode, props: Dict[str, str])
type(self) → str
writeTextSymbolizer()