Пауза маркировки в QGIS?

9

Можно ли временно приостановить / остановить маркировку в QGIS, как в Arcmap, для всех слоев одновременно?

Панель инструментов ярлыка не предлагает решения.

RolandG
источник

Ответы:

11

QGIS 3.x

Вы можете использовать следующий код в консоли Python для создания кнопки на панели инструментов, которая переключает метки для всех векторных слоев:

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)

Код был основан на вопросе: Как включить / выключить все метки всех слоев в QGIS .


QGIS 2.18.x

Вы можете использовать плагин Деактивировать / Активные метки, который имеет кнопку для включения / выключения меток для всех слоев:

Инвертировать ярлыки

Джозеф
источник
1
Спасибо, Джозеф. Это то, что я искал. Жаль, что он еще не портирован на Qgis 3.
RolandG
1
@RolandG - Добро пожаловать, добавлен возможный метод для QGIS 3 :)
Джозеф
1
отсутствует плагин Деактивировать / Активные метки! Запустил запрос на их репо, чтобы обновить его.
Nikhil VJ
@nikhilvj - Хороший! :)
Иосиф