Come rendere invisibile un livello o un gruppo nel pannello Livelli?


13

Ho un numero di livelli nel pannello Livelli all'interno di un gruppo, ma non li voglio mostrare (ce n'è un sacco, quindi sembra disordinato). Questi livelli sono anche uniti a molti altri.

È possibile rendere invisibili questi livelli all'utente ( ovvero non mostrati nel pannello Livelli, non si tratta di impostare la visibilità del livello ) ma possono comunque essere uniti ad altri livelli? O forse rendere invisibile il gruppo?

Più vicino ho trovato questo post, ma spero che ci sia un approccio più diretto:

Mostrando solo alcuni livelli nella legenda di QGIS?

Risposte:


15

Trovo che rendere invisibili i livelli / i gruppi sia utile per evitare di mostrare le tabelle di ricerca, che sono necessarie per le relazioni di valore ma potrebbero rendere il pannello dei livelli un po 'sovraccarico.

Solo per chiarire, livelli / gruppi invisibili non appariranno nel pannello Livelli, ma possono ancora essere visti nell'area di disegno o utilizzati in join / relazioni con altri livelli.


RISPOSTA:

Utilizza i livelli e i gruppi invisibili del plug -in , che ti consente di:

  • Rendi invisibili i livelli / i gruppi selezionati (pulsante plugin).
  • Rendi nuovamente visibili livelli / gruppi (che sono invisibili) (pulsante plugin).
  • Memorizza la visibilità di livelli / gruppi nel tuo progetto QGIS.
  • Ricrea la visibilità di livelli / gruppi quando apri il tuo progetto QGIS.
  • Rendi invisibile un particolare livello (per codice).
  • Rendi invisibile un determinato gruppo (per codice).

Rendere invisibile un livello (per codice):

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

Rendere invisibile un gruppo (per codice):

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

Nota: c'è un problema che dovresti conoscere. Se rendi un livello invisibile e poi sposti il ​​suo gruppo genitore, il livello invisibile sarà di nuovo visibile (non so perché!). Pertanto, la mia raccomandazione è di rendere invisibili solo i livelli / i gruppi principali (dopo tutto, non è possibile spostare la radice).


Esattamente quello che stavo cercando, molte grazie per questo! In effetti, ho diversi livelli che vengono utilizzati per i calcoli (tutti uniti a un altro livello), quindi non voglio che l'utente visualizzi o modifichi questi livelli. Quindi la tua soluzione risolve notevolmente questo. Una domanda, lo hai implementato solo recentemente come plugin?
Joseph,

Bene, è stato pubblicato giorni fa. Mi ero chiesto come nascondere i livelli prima, ma solo dopo questa domanda ho intrapreso il compito (ne avrò bisogno prima o poi al lavoro). Ho pensato di rispondere con frammenti di codice, ma la risposta è stata abbastanza lunga da diventare complessa, quindi ho preferito incapsularlo in un plug-in, che è molto più facile da usare.
Germán Carrillo

Beh, è ​​un ottimo plugin, quindi votato per questo :)
Joseph

+1 Un plugin molto utile. Soprattutto per il mio lavoro, per essere specifico nella mappatura dei dati sul campo con un Tough Book + QGIS, per evitare un pannello di livello sovraccarico (lo scorrimento richiede tempo nel campo). Ho un suggerimento (forse per migliorare il tuo plugin (o meno)): Potresti implementare che il plugin ricordi i livelli che hai segnato una volta e renderli nuovamente invisibili quando si preme di nuovo il pulsante del plugin (rendili invisibili)? Per impostare un'altra selezione (livelli / gruppi) invisibile, è necessario selezionarli nuovamente.
Stefan

Ottimo che trovi utile il plugin! Grazie per il tuo suggerimento, ti dispiacerebbe aggiungere una nuova richiesta di funzionalità (problema) in GitHub ?
Germán Carrillo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.