새로운 QGIS 3 API로 규칙 기반 레이블을 처음부터 설정하는 데 도움이되는 도움말
#Configure label settings
settings = QgsPalLayerSettings()
settings.fieldName = 'myFieldName'
textFormat = QgsTextFormat()
textFormat.setSize(10)
settings.setFormat(textFormat)
#create and append a new rule
root = QgsRuleBasedLabeling.Rule(QgsPalLayerSettings())
rule = QgsRuleBasedLabeling.Rule(settings)
rule.setDescription(fieldName)
rule.setFilterExpression('myExpression')
root.appendChild(rule)
#Apply label configuration
rules = QgsRuleBasedLabeling(root)
myLayer.setLabeling(rules)
myLayer.triggerRepaint()
불행히도 기존 규칙을 반복하는 방법을 찾을 수 없습니다. 벡터 레이어에 사용 가능한 labeling () 메서드는 QgsAbstractVectorLayerLabeling 의 객체를 반환합니다 클래스 하지만 근본 규칙을 얻는 방법이없는 것 같습니다 ( QgsRuleBasedLabeling 이 클래스에서 ) 공급자 ID를 사용하여 직접 친구 설정을 얻는 것이지만 규칙 트리에 액세스 할 수 없습니다. 누구나 실마리가 있습니까?
편집하다
이제 labeling () 함수가 QgsRuleBasedLabeling ()을 반환합니다. https://github.com/qgis/QGIS/commit/4b365a8f47d96b35f7609859e580388927ae0606