I would like to know, where are simple svg-markers (for example the one that is defined as "regular_star" in .qml
file) are physically located in the system? I searched the system and looked inside the symbology-ng-style.db
, but with no luck.
2 Answers
Symbol references are stored in symbology-ng-style.db
in table symbol
. But the name in column name
is not what is shown as symbol label in style dialogs.
The name regular_star is defined as value of property name
in the xml symbol definition in column xml
.
Look at the xml definition (double click on the cell with xml content):
These symbols are hard coded in the Qgis sources. See this snipped from file qgsmarkersymbollayerv2.cpp
:
-
I feared that this is the case... Is there any way to export them to SVG? Commented Jan 30, 2016 at 12:22
-
Hmm. The hard coding seems to extend graphical primitives of Qt. All style properties are parameterized outside, eg in these xml stories. When you take Inkscape you also have a set of primitives, which you can export to svg and then use in QGIS as symbols. But the strange thing is: my own SVG symbol cannot be changed in QGIS (eg fill color), as is the case with the provided symbols.– DetlevCommented Jan 30, 2016 at 13:07
-
Just delete all attributes from
<path .../>
element except the geometry description and addedfill="param(fill)" stroke="param(outline)" stroke-width="param(outline-width)"
, and it works: fill color, border width and color can be changed in QGIS style properties.– DetlevCommented Jan 30, 2016 at 13:24
I found the .svg symbols in the QGIS program folder by searching for .svg. On my system, for 3 different QGIS versions, the .svg files for the symbol options were located in C:\Program Files\~QGIS Version~\apps\qgis\svg\
. I usually add a custom folder and put my own .svg symbols in there.