[Qgis-user] Re: Labels not visible when setting them programmatically.
Christophe Damour
sigeal at sigeal.com
Thu Apr 2 02:08:15 PDT 2015
Hi,
I have the same problem when I tried to set labels from a python plugin :
With this code, labels are correctly displayed without having to apply
layer properties, but only for points or polygons layers.
For lines layers, I have to apply layer properties in order to display
labels.
palLayer = QgsPalLayerSettings()
palLayer.readFromLayer(self.serpLayer)
palLayer.enabled = True
palLayer.fieldName = 'id'
palLayer.textFont.setPointSize(10)
palLayer.writeToLayer(self.serpLayer)
With this code, I get the same problem for points, lines and polygons
layers :
self.serpLayer.setCustomProperty('labeling', 'pal')
self.serpLayer.setCustomProperty('labeling/enabled', 'true')
self.serpLayer.setCustomProperty('labeling/fieldName', 'id')
self.serpLayer.setCustomProperty('labeling/fontSize', '10')
self.serpLayer.triggerRepaint() and/or self.iface.mapCanvas().refresh()
don't help.
Hope someone can help...
--
Christophe
Le 01/04/2015 14:20, Werner Macho a écrit :
> hmm -
> well - as the qchainage plugin clearly sets labeling (when enabled)
> you could take it and search for the missing piece..
> regards
> Werner
>
> On Wed, Apr 1, 2015 at 2:19 PM, Casper Børgesen (CABO) <CABO at niras.dk> wrote:
>> No the triggerRepaint() didn't work, just to clarify that I tried that :)
>>
>> Regards, Casper
>>
>> -----Original Message-----
>> From: Werner Macho [mailto:werner.macho at gmail.com]
>> Sent: 1. april 2015 13:52
>> To: Casper Børgesen (CABO)
>> Cc: qgis-user at lists.osgeo.org
>> Subject: Re: [Qgis-user] Labels not visible when setting them programmatically.
>>
>> Hi!
>>
>> I thought maybe it is the
>> triggerRepaint()
>>
>> but it was just a guess.
>>
>> regards
>> Werner
>>
>> On Wed, Apr 1, 2015 at 1:48 PM, Casper Børgesen (CABO) <CABO at niras.dk> wrote:
>>> Hi Werner
>>>
>>> Sadly no, it does not.
>>>
>>>
>>> Regards, Casper
>>>
>>> -----Original Message-----
>>> From: Werner Macho [mailto:werner.macho at gmail.com]
>>> Sent: 1. april 2015 13:43
>>> To: Casper Børgesen (CABO)
>>> Cc: qgis-user at lists.osgeo.org
>>> Subject: Re: [Qgis-user] Labels not visible when setting them programmatically.
>>>
>>> Hi,
>>> does
>>> https://github.com/mach0/qchainage/blob/master/chainagetool.py
>>>
>>> line 150 ff help you?
>>>
>>> regards
>>> Werner
>>>
>>> On Wed, Apr 1, 2015 at 1:25 PM, Casper Børgesen (CABO) <CABO at niras.dk> wrote:
>>>> I’m trying to programmatically set and enable labelling on a layer
>>>> using Python in QGis 2.9.0.
>>>>
>>>>
>>>>
>>>> label = QgsPalLayerSettings()
>>>>
>>>> label.readFromLayer(myLayer)
>>>>
>>>>
>>>>
>>>> label.enabled = True
>>>>
>>>> label.fieldName = 'myField'
>>>>
>>>>
>>>>
>>>> # Just to change something clearly visible.
>>>>
>>>> label.textColor = QColor(255,0,0,255)
>>>>
>>>>
>>>>
>>>> label.writeToLayer(myLayer)
>>>>
>>>>
>>>>
>>>> This doesn’t enable labelling, but if I enter the Layer Properties on
>>>> myLayer, everything looks okay and when pressing Apply, the labels
>>>> become visible.
>>>>
>>>>
>>>>
>>>> Is there something I need to set to avoid having to manually click
>>>> Apply to get the labels visible?
>>>>
>>>>
>>>>
>>>> Calling iface.mapCanvas().refresh() afterwards doesn’t work.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Regards, Casper
>>>>
>>>>
>>>> _______________________________________________
>>>> Qgis-user mailing list
>>>> Qgis-user at lists.osgeo.org
>>>> http://lists.osgeo.org/mailman/listinfo/qgis-user
> _______________________________________________
> Qgis-user mailing list
> Qgis-user at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-user
---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com
More information about the Qgis-user
mailing list