QGIS中如何快速查看统计选中图层数量(两种方法)
        
          发布时间: 2025-08-28        
        
          所属分类: QGIS学习笔记
        
        
              
      
      
      
      在使用 QGIS 处理大量图层时,经常需要同时选中多个图层进行操作。但图层一多,就很难快速看出到底选中了多少个——别慌,用 PyQGIS 写个小工具就能轻松解决!
今天小编给大家分享两种实时显示选中图层数量的方法,操作简单、代码清晰,有需要的可以尝试。
方案一:实时显示选中图层总数
这是目前社区里最受欢迎的做法,适合快速查看选中图层的总数。具体的代码实现方法如下:
from qgis.PyQt.QtWidgets import QLabel
label = QLabel("Selected Layers Count:")
count = QLabel()
tree_view = iface.layerTreeView()
c = len(tree_view.selectedLayers())
count.setText(str(c))
tb = iface.addToolBar("Selected layers")
tb.addWidget(label)
tb.addWidget(count)
def show_selected_layers_count():
    c = len(tree_view.selectedLayers())
    count.setText(str(c))
tree_view.selectionModel().selectionChanged.connect(show_selected_layers_count)
直接在QGIS中运行上述代码,效果如图:

实现原理:
- 通过 iface.layerTreeView()获取图层树;
- 初始计算选中数量并显示;
- 借助 selectionChanged信号实现实时更新。
方案二:按图层组统计选中数量
上述的方案简单快捷,但有一个小问题就是不支持图层组,这是一个增强版方案。
代码如下:
from qgis.PyQt.QtWidgets import QLabel
from qgis.core import QgsProject
p = QgsProject.instance()
root = p.layerTreeRoot()
view = iface.layerTreeView()
tb = iface.addToolBar("Selected layers")
def show_selected_layers_count():
    tb.clear()
    tb.addWidget(QLabel('Selected layers per group:      '))
    for child in root.children():
        if root.isGroup(child):
            label = QLabel(f'{child.name()}: ')
            selected_layers = []
            for selectedLayer in view.selectedNodes():
                if selectedLayer.parent() == child:
                    selected_layers.append(selectedLayer)
            count = len(selected_layers)
            count_label = QLabel(str(count) + '    ')
            tb.addWidget(label)
            tb.addWidget(count_label)
con = view.selectionModel().selectionChanged.connect(show_selected_layers_count)
# 如需断开连接可使用:
# view.selectionModel().selectionChanged.disconnect(con)
运行结果如下:

总结
最后,小编建议大家将脚本保存为.py文件并放入 QGIS 的启动脚本目录(例如 ~/.qgis3/python),这样即可实现每次启动 QGIS 时自动加载;若想进一步扩展功能,可对方法二进行优化,例如增加对递归子组的统计支持或自定义显示样式;此外,还可以尝试为标签添加背景色、边框等样式调整,让界面显示更加直观美观。
全部QGIS笔记
本站所有的QGIS学习笔记-->QGIS 学习笔记汇总
相关阅读
声明
1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。
2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。
手机阅读
          公众号关注
          知识星球
          
              手机阅读
            
           
            
              最新GIS干货
            
           
            
              私享圈子
            
          上一篇:QGIS查找栅格影像最大像元
        下一篇:QGIS如何获取用户的当前位置?
       
     
               
               
               
               
               
               
           
           
           
           
                     
                     
                     
                     
                     
                     
                     
                    ![[WebGIS] HTML5跟踪GPS轨迹笔记汇总](http://image.malagis.com/pic/gis/2016-09-24_21_12_57_1474722777.75992.jpg?imageView2/1/w/100/h/70) 
                 
                 
                 
                 
                     
                     
                     
                     
                     
                     
                     
                     
                     
                 
                 
                 
                 
                 
                 
                 
                