Як зробити шар або групу невидимим на панелі шарів?


13

У панелі шарів всередині групи є декілька шарів, але я не хочу, щоб вони відображалися (їх досить багато, щоб це виглядало неохайно). Ці шари також приєднуються до кількох інших.

Чи можливо зробити ці шари невидимими для користувача ( тобто не показано на панелі шарів, мова не йде про встановлення видимості шару ), але все ж їх можна приєднати до інших шарів? А може зробити групу невидимою?

Найближчим я знайшов цю публікацію, але сподіваюся, що існує більш прямий підхід:

Показано лише деякі шари в легенді QGIS?

Відповіді:


15

Я вважаю, що зробити шари / групи "невидимими" корисно, щоб уникнути показу таблиць пошуку, які потрібні для співвідношень цінностей, але це може зробити так, щоб панель шарів виглядала трохи перевантаженою.

Для уточнення, невидимі шари / групи не з’являться на панелі шарів, але їх все одно можна побачити на полотні або використовувати в з'єднаннях / відносинах з іншими шарами.


ВІДПОВІДЬ:

Використовуйте плагін Невидимі шари та групи , що дозволяє:

  • Зробіть вибрані шари / групи невидимими (кнопка плагіна).
  • Зробити шари / групи (невидимі) знову видимими (кнопка плагіна).
  • Зберігайте видимість шарів / груп у вашому проекті QGIS.
  • Відтворіть видимість шарів / груп під час відкриття проекту QGIS.
  • Зробити певний шар невидимим (за кодом).
  • Зробити певну групу невидимою (за кодом).

Зробити шар невидимим (за кодом):

if 'InvisibleLayersAndGroups' in qgis.utils.plugins:
    ilg = qgis.utils.plugins['InvisibleLayersAndGroups']
    ilg.hideLayer( layer )    # layer is a QgsMapLayer

Зробити групу невидимою (за кодом):

if 'InvisibleLayersAndGroups' in qgis.utils.plugins:
    ilg = qgis.utils.plugins['InvisibleLayersAndGroups']
    ilg.hideGroup( group )    # group is a QgsLayerTreeGroup
    ilg.hideGroup( 'group2' ) # You can also pass a group name

Примітка. Існує проблема, яку ви повинні знати. Якщо ви зробите шар невидимим, а потім перемістите його батьківську групу, невидимий шар знову буде видно (я не знаю, чому!). Отже, моя рекомендація - робити лише непомітні верхні шари / групи (адже не можна переміщувати корінь).


Саме те, що я шукав, велике спасибі за це! Дійсно, у мене є кілька шарів, які використовуються для обчислень (усі вони приєднані до іншого шару), тому я не хочу, щоб користувач бачив або редагував ці шари. Тож ваше рішення чудово вирішує це. Одне запитання, чи реалізували ви це лише як плагін недавно?
Йосип

Правильно, це було опубліковано днями тому. Я раніше цікавився, як приховати шари, але лише після цього питання я взявся за завдання (мені це знадобиться рано чи пізно на роботі). Я думав відповісти фрагментами коду, але відповідь була досить довгою, щоб стати складною, тому я вважав за краще інкапсулювати її у плагін, який набагато простіше у використанні.
Герман Каррілло

Ну це чудовий плагін, тому проголосували за нього :)
Йосип

+1 Дуже корисний плагін. Спеціально для моєї роботи, щоб бути конкретним у відображенні даних у полі за допомогою жорсткої книги + QGIS, щоб уникнути перевантаження панелі шару (прокрутка вимагає часу в полі). У мене є пропозиція (можливо, покращити ваш плагін (чи ні)): Чи можете ви реалізувати, що плагін запам'ятовує шари, які ви позначили один раз, і зробить їх знову невидимими, коли кнопка плагіна (зробить їх невидимими) знову натиснута? Щоб встановити інший вибір (шари / групи) невидимими, ви повинні вибрати їх заново.
Стефан

Чудово, що ви вважаєте плагін корисним! Дякуємо за вашу пропозицію, чи не заперечуєте ви додати новий запит (проблему) на функцію в GitHub ?
Герман Каррілло
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.