Skip to content

Instantly share code, notes, and snippets.

@NathanW2
Created July 5, 2015 12:43
Show Gist options
  • Save NathanW2/4379200db9071463b8a4 to your computer and use it in GitHub Desktop.
Save NathanW2/4379200db9071463b8a4 to your computer and use it in GitHub Desktop.
Export Symbols
import os
from PyQt4.QtCore import *
from PyQt4.QtGui import *
outdir = '~/temp/'
size = QSize(32, 32)
def get_gen(name):
gen = QSvgGenerator()
filename = os.path.join(outdir, name + ".svg")
gen.setFileName(filename)
gen.setSize(size)
gen.setViewBox(QRect(0,0,size.width(),size.height()))
return gen
layers = QgsMapLayerRegistry.instance().mapLayers().values()
for layer in layers:
if not layer.type() == QgsMapLayer.VectorLayer:
continue
renderer = layer.rendererV2()
items = renderer.legendSymbolItemsV2()
for item in items:
name = item.label()
symbol = item.symbol()
gen = get_gen(name)
painter = QPainter(gen)
symbol.drawPreviewIcon(painter, size)
painter.end()
print "Exported" + gen.fileName()
@mtravis
Copy link

mtravis commented Jul 6, 2015

Had to import QtSvg to work for me.

from PyQt4.QtSvg import *

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment