QGISで、レイヤの表示順を変更するスクリプトは下記のように記述します。



# QGIS2,QGIS3変更なし。
layer = iface.activeLayer()
layertree = QgsProject.instance().layerTreeRoot()

lt = layertree.findLayer(layer.id())
lt_clone = lt.clone()

layertree.insertChildNode(0, lt_clone)
layertree.removeChildNode(lt)


実行すると指定位置にレイヤが移動します。


レイヤツリーを取得:


layertree = QgsProject.instance().layerTreeRoot()


対象レイヤのクローンを作成:


lt = layertree.findLayer(layer.id())
lt_clone = lt.clone()


クローンを一番上に追加:


layertree.insertChildNode(0, lt_clone)


元のレイヤを削除:


layertree.removeChildNode(lt)


レイヤの表示順を変更することができます。





book


Q&A