Wstrzymać etykietowanie w QGIS?

9

Czy można tymczasowo wstrzymać / zatrzymać etykietowanie w QGIS, tak jak w Arcmap dla wszystkich warstw jednocześnie?

Pasek narzędzi etykiet nie oferuje rozwiązania.

RolandG
źródło

Odpowiedzi:

11

QGIS 3.x

Możesz użyć następującego kodu w konsoli Python, aby utworzyć przycisk na pasku narzędzi, który przełącza etykiety dla wszystkich warstw wektorowych:

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)

Kod został oparty na pytaniu: Jak włączyć / wyłączyć wszystkie etykiety wszystkich warstw w QGIS .


QGIS 2.18.x

Możesz użyć wtyczki Dezaktywuj / Aktywne etykiety, która ma przycisk do włączania / wyłączania etykiet dla wszystkich warstw:

Odwróć etykiety

Joseph
źródło
1
Dziękuję Joseph. Właśnie tego szukałem. Szkoda, że ​​nie jest jeszcze przeniesiony do Qgis 3.
RolandG
1
@RolandG - Bardzo mile widziane, dodano możliwą metodę dla QGIS 3 :)
Joseph
1
brakuje wtyczki Deactivate / Active labels! Rozpoczął żądanie repozytorium, aby je zaktualizować.
Nikhil VJ
@nikhilvj - Nice one! :)
Joseph