[Qgis-user] Issue with QgsLayerTreeNode.itemVisibilityChecked

Patrick Dunford enzedrailmaps at gmail.com
Mon May 22 18:44:26 PDT 2023


Good day

I am using a python script running in the Qgis scripting console to read 
a list of layers in the table of contents and it is supposed to be able 
to find out which layer's visibility check box is checked or not by 
calling the method itemVisibilityChecked.

So I have a top level group in the layer tree whose name is specified in 
a constant called extentGroupName and I am using the piece of code shown 
below to evaluate which of the layers in the group have their check box 
checked or not:

extentGroup = root.findGroup(extentGroupName)

extentLayers = extentGroup.children()

for extentLayer in extentLayers:

     if extentLayer.itemVisibilityChecked:

         print (extentLayer.name())

When I run this code it always prints the name of every layer in the 
group (I can see that it has the names right so that clearly these layer 
names have come from that group) but it is clear that the state of the 
checkbox is always found to be checked as far as the script is concerned 
so it ignores whether it is actually checked or not and always returns 
True as the result of calling the method itemVisibilityChecked.

I can't see if there is anything wrong in my code and so it appears 
there is a bug in that it always returns True for the method 
itemVisibilityChecked regardless of what it is actually set to.

Qgis 3.28, Linux (both flatpak and LTS deb packages tested)



More information about the QGIS-User mailing list