Styling border to match fill in QGIS?

11

Dans le passé, je viens de faire correspondre manuellement la couleur de la bordure à la couleur du remplissage, mais cela peut prendre du temps.

Je me demande, existe-t-il un moyen pour que le programme fasse correspondre automatiquement la couleur de la bordure à celle du remplissage?

La couleur de remplissage est attribuée via l'onglet de style dans les propriétés du calque.

Utilisation de QGIS 2.8.6

Kingfisher
la source
2
Il me semble que la suppression de la bordure aura visuellement le même effet que l'adaptation de la couleur de la bordure au remplissage (si la bordure est mince, bien sûr). Vous voudrez donc peut-être supprimer les bordures (option "Pas de stylo" dans "style de bordure").
ArMoraer
3
Merci pour la suggestion, ArMoraer. J'ai essayé cela dans le passé, mais j'ai constaté que cela expose généralement de petits écarts entre les formes, ce qui n'est pas esthétique.
Kingfisher du

Réponses:

21

Je ne sais pas comment l'appliquer pour les polygones existants, mais vous pouvez le faire fonctionner pour tous les futurs que vous créerez.

Dans Propriétés du projet> Styles par défaut> Gestionnaire de styles, vous pouvez créer votre propre style de symbole par défaut pour "Remplir":

Gestionnaire de styles QGIS

Modifiez l'expression de la couleur de la bordure et définissez-la sur @symbol_color: Modification de l'expression de la bordure

Définition de l'expression de la bordure

Enfin, définissez votre nouveau style de remplissage par défaut: Définition d'un nouveau remplissage par défaut

Ainsi, la bordure correspondra toujours à la couleur de symbole définie. Cela ne se reflétera pas nécessairement dans les propriétés du polygone. Ainsi, il peut toujours sembler que vous avez une bordure de couleur différente définie dans les propriétés, mais elle doit toujours correspondre à la couleur de symbole définie de l'objet dans la carte.

J'aurais aimé avoir une meilleure idée en ce qui concerne le fait de rendre cela rétroactif, mais peut-être que moi ou quelqu'un d'autre viendrai avec une bonne idée à ce sujet plus tard.

JohnR
la source
sympa - j'ai juste essayé cela avec une couche de polygone classée existante et cela a fonctionné - pas besoin non plus de configurer un style par défaut (qgis 2.14.1)
Steven Kay
Ravi d'entendre, Steven! Le définir comme style par défaut serait plus pour éviter de le redéfinir sur de nouveaux polygones dans le projet, mais comme vous l'avez dit, vous n'avez pas nécessairement à le faire.
JohnR
2
J'ai installé 2.8 et l'ai bricolé un moment. Il semble que vous aurez besoin de passer à la version 2.14 si la fonction @color_symbol est super importante, il n'y a tout simplement pas d'équivalent intégré en 2.8.
JohnR
3
Stylistiquement, j'aime une bordure polygonale qui est une nuance légèrement plus foncée de la couleur de remplissage. J'ai atteint cet objectif en définissant l'expression de la couleur de la bordure comme: plus sombre (@symbol_color, 200).
csk
1
@RutgerH J'ai pu faire fonctionner cela sur 2.18.0, mais il y a eu des changements de style mineurs depuis ma réponse initiale. Si vous suivez les instructions et recherchez "Outline" au lieu de "Border", vous devriez arriver à la même conclusion.
JohnR
2

une autre façon d'obtenir la couleur de la bordure pour correspondre à la couleur de remplissage consiste à ajouter un nouveau calque à votre symbole avec le type de calque de symbole = Contour: Ligne simple.

Lorsque la couleur est appliquée au niveau du symbole, tous les calques ont la même couleur (sauf si un calque est verrouillé), de sorte que le remplissage et la bordure ajoutée sont les mêmes ...

entrez la description de l'image ici

JR
la source
0

Pour savoir comment le rendre rétroactif - vous pouvez simplement enregistrer le style en tant que fichier .qml, utilisez la recherche et le remplacement d'expressions régulières pour définir les bordures sur la même couleur que les polygones (dans Notepad ++ ou similaire):

Trouver:

<prop k="color" v="([^\r\n"]+)"/>(.+?)<prop k="outline_color" v="([^\r\n"]+)"/>

Remplacer:

<prop k="color" v="\1"/>\2<prop k="outline_color" v="\1"/>

enregistrer, puis recharger le style dans qgis :)

tzirtzi
la source