Pausar rotulagem no QGIS?

9

É possível pausar / parar a etiquetagem temporariamente no QGIS, como no Arcmap, para todas as camadas ao mesmo tempo?

A barra de ferramentas de etiquetas não oferece solução.

RolandG
fonte

Respostas:

11

QGIS 3.x

Você pode usar o código a seguir no Python Console para criar um botão na barra de ferramentas que alterna os rótulos para todas as camadas vetoriais:

action = QAction(QIcon(""), "Turn labels" + "\n" + "ON/OFF", iface.mainWindow())
action.setCheckable(True)
iface.addToolBarIcon(action)

def label_control():
    for layer in QgsProject.instance().mapLayers().values():
        if layer.type() == QgsMapLayer.VectorLayer:
            if action.isChecked() == True:
                layer.setLabelsEnabled(True)
            else:
                layer.setLabelsEnabled(False)
        layer.triggerRepaint()

action.triggered.connect(label_control)
# Uncomment line below if you want to remove the icon yourself,
# otherwise it will be removed automatically when you restart QGIS
iface.removeToolBarIcon(action)

O código foi baseado na pergunta: Como ativar / desativar todos os rótulos de todas as camadas no QGIS .


QGIS 2.18.x

Você pode usar o plug-in Deactivate / Active Labels, que possui um botão para ativar / desativar rótulos para todas as camadas:

Inverter etiquetas

Joseph
fonte
11
Obrigado Joseph. Era isso que eu estava procurando. Pena que ainda não foi portado para o Qgis 3.
RolandG
11
@RolandG - Mais bem-vindo, acrescentou um método possível para QGIS 3 :)
Joseph
11
faltando o plug-in Deactivate / Active labels! Iniciou uma solicitação em seu repositório para atualizá-lo.
Nikhil VJ
@nikhilvj - Nice one! :)
Joseph