Comment définir la transparence pour plusieurs couches ou ajouter une préférence de transparence globale?

8

Comment puis-je définir la transparence à 27% pour les 245 couches de QGIS? La seule façon que je sache est en cliquant avec le bouton droit sur le nom du calque, en sélectionnant Propriétés, puis Transparence, puis en déplaçant le curseur de transparence vers la gauche ou la droite.

une

C'est assez simple. Mais ce n'est bon que pour 10 couches maximum. Et si vous avez 245 couches comme moi? Continuez-vous simplement à répéter le processus? Maintenant, il doit sûrement y avoir un moyen de l'appliquer aux 245 couches à la fois!?

b

Sinon, existe-t-il un paramètre de préférence de transparence globale que je peux ajouter pour que lorsque j'ajoute de nouveaux calques, ils obtiennent automatiquement 27% de transparence?

La documentation en ligne de QGIS mentionne quelque chose sur l'exportation de votre paramètre de transparence dans un fichier pour une utilisation ultérieure.

Comme vous pouvez le voir, il est assez facile de définir une transparence personnalisée, mais cela peut demander beaucoup de travail. Par conséquent, vous pouvez utiliser le bouton Exporter vers un fichier pour enregistrer votre liste de transparence dans un fichier. Le bouton Importer à partir d'un fichier charge vos paramètres de transparence et les applique à la couche raster actuelle.

Cela semble être une fonctionnalité utile. Mais je ne pense pas que ce soit ce que je recherche.

J'ai essayé de sélectionner plusieurs couches dans la table des matières, puis cliquez avec le bouton droit et sélectionnez Propriétés et définissez le niveau de transparence, appliquez les modifications et cliquez sur OK. Il a appliqué les modifications, mais uniquement au dernier calque de la sélection, celui sur lequel j'ai cliqué avec le bouton droit. Aucun des autres calques de la sélection n'a été affecté. (Cela pourrait être un bug en fait.)

Samir
la source

Réponses:

8

Un petit script python comme celui-ci le ferait

for layer in iface.legendInterface().layers():
   layer.renderer().setOpacity(0.2)

Copiez et collez simplement cela dans la console python (qui est affiché via Plugins-> console Python) et appuyez deux fois sur Entrée. Le script bouclera tous les calques et définira leur opacité à 20%.

ndawson
la source
Est-il possible de faire de même lorsque vous avez également des calques vectoriels? Vous préférez le faire uniquement pour les calques sélectionnés ou pour les calques d'un même groupe?
Victor
cela ne semble plus fonctionner en 2.8.2, je vois un rendererV2 dans les docs au lieu du renderer, mais il n'a pas la méthode setOpacity :(
chrismarx
je vois ce ticket qui suggérerait que les groupes de couches pourraient faire cela, mais je ne vois pas comment non plus - trac.osgeo.org/qgis/ticket/557
chrismarx
Pour GQIS3, remplacez la première ligne w: for layer in [layer for layer in QgsProject.instance().mapLayers().values()]:par ceci: gis.stackexchange.com/questions/273576/…
andrew
4

Une autre option, ne nécessitant aucun python, consiste simplement à modifier votre fichier de projet.

La transparence de la couche raster est définie avec: rasterrenderer opacity = "1"

Vous pouvez ouvrir votre fichier de projet .qgs dans un éditeur de texte et rechercher et remplacer: rasterrenderer opacity = "1" Avec: rasterrenderer opacity = "0.73"

HeikkiVesanto
la source
3

Pour ce faire, la méthode la plus simple consiste à utiliser des styles de calque. Réglez simplement la transparence d'un seul calque sur 27% et copiez / collez le style sur tous les autres calques. Vous pouvez coller un style sur plusieurs calques à la fois.

Voir également:

http://hub.qgis.org/issues/14931

eclipsed_by_the_moon
la source
non car cela copiera sur tout le reste, y compris la symbologie / les couleurs / l'étendue de la vue.
Theo F
Réponse sous-estimée! Fonctionne parfaitement lorsque nous ne travaillons que sur la transparence
Eliasse