【问题标题】:PyQGIS 3.18.2 Removing Band Name from SymbologyPyQGIS 3.18.2 从符号系统中删除波段名称
【发布时间】:2021-07-17 05:45:34
【问题描述】:

我最近更新了我的 QGIS,我注意到样式现在显示乐队 Band 1(Gray)

问题是它现在显示在我的打印布局中:

使用 PYQGIS,我怎样才能删除 just Band 1 (Gray)

作为参考,这是我当前在布局中设置图例的方式:

def set_legend(layout: QgsPrintLayout, tree: QgsLayerTree, layer: QgsLayer, item_id: str):
  '''Sets the Legend items'''
  logging.info(f'setting legend: {item_id}')
  item = layout.itemById(item_id)

  # set layer as root for legend
  tree.addLayer(layer)
  item.model().setRootGroup(tree)
  node = item.model().rootGroup().findLayer(layer)
  
  # hide the node title
  QgsLegendRenderer.setNodeLegendStyle(node, QgsLegendStyle.Hidden)

谢谢!

【问题讨论】:

    标签: gdal qgis pyqgis


    【解决方案1】:

    这是我在挖掘 StackOverflow 和 API 后的解决方案:

    root = model.rootGroup().findLayer(layer)
    
    # hide the node with label: Band 1 (Gray)
    if isinstance(layer, QgsRasterLayer):
      nodes = model.layerLegendNodes(root)
      if nodes[0].data(0) == 'Band 1 (Gray)':
        indexes = list(range(1, len(nodes)))
        QgsMapLayerLegendUtils.setLegendNodeOrder(root, indexes)
        model.refreshLayerLegend(root)
    

    【讨论】:

      猜你喜欢
      • 2018-12-07
      • 2022-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-08
      • 2015-08-08
      • 1970-01-01
      相关资源
      最近更新 更多