Suspendre l'étiquetage dans QGIS?

9

Est-il possible de suspendre / arrêter temporairement l'étiquetage dans QGIS comme dans Arcmap pour toutes les couches à la fois?

La barre d'outils d'étiquette n'offre aucune solution.

RolandG
la source

Réponses:

11

QGIS 3.x

Vous pouvez utiliser le code suivant dans la console Python pour créer un bouton sur la barre d'outils qui bascule les étiquettes pour toutes les couches vectorielles:

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)

Le code était basé sur la question: comment activer / désactiver toutes les étiquettes de toutes les couches dans QGIS .


QGIS 2.18.x

Vous pouvez utiliser le plugin Désactiver / Activer les étiquettes qui a un bouton pour activer / désactiver les étiquettes pour toutes les couches:

Inverser les étiquettes

Joseph
la source
1
Merci Joseph. Voilà ce que je cherchais. Dommage, il n'est pas encore porté pour Qgis 3.
RolandG
1
@RolandG - Très bienvenu, a ajouté une méthode possible pour QGIS 3 :)
Joseph
1
manque le plugin Désactiver / Activer les étiquettes! Lancé une demande sur leur dépôt pour le mettre à niveau.
Nikhil VJ du
@nikhilvj - Nice one! :)
Joseph