У меня есть эта функция, которая должна изменить метку многоугольника (код ниже), где «nom_com» и «statutpro» - поля в слое.
def ETIQUETAGE(self):
layer = self.COUCHE_DEPARTEMENT_SELECTIONNEE() #return a vector layer
deco = QgsPalLayerSettings()
deco.enabled = True
isExpression = True
if self.ChoixEtiquetage.currentText() == "COMMUNE":
deco.fieldName = '\'nom :\' +"nom_com"'
if self.ChoixEtiquetage.currentText() == "COMMUNE ET STATUT PROSPECTION":
deco.fieldName = '"nom_com" + \'\\n\' +"statutpro"'
labeler = QgsVectorLayerSimpleLabeling(deco)
layer.setLabeling(labeler)
layer.setLabelsEnabled(True)
layer.triggerRepaint()
Когда я запускаю ее, все в порядке ( у меня нет ошибок) проблема в дисплее. Функция изменяет метку charateristi c в окне свойств, но отображение не отображается, пока я не нажму aply в окне свойств.
Когда я помещаю только один аргумент, отображение работает отлично. например,
deco.fieldName = "nom_com"
Есть ли особый синтаксис, когда это выражение?