[prev in list] [next in list] [prev in thread] [next in thread]
List: pykde
Subject: Re: [PyQt] No output from QSvgGenerator
From: David Boddie <dboddie () trolltech ! com>
Date: 2008-05-27 17:00:02
Message-ID: 200805271900.02109.dboddie () trolltech ! com
[Download RAW message or body]
On Tue May 27 17:00:23 BST 2008, Luke Campagnola wrote:
> class GraphicsView(QtGui.QGraphicsView):
>
> [ ... ]
>
> def writeSvg(self, fileName):
> self.svg = QtSvg.QSvgGenerator()
> self.svg.setFileName(fileName)
> self.svg.setSize(self.size())
> self.svg.setResolution(600)
> self.painter = QtGui.QPainter(self.svg)
> self.render(self.painter)
>
> When I run writeSvg(), an empty file is created. If I try to run the
> function again, it complains that paint devices can not be deleted
> while being painted on.
You need to "close" the painter, either by making "painter" a local
variable or by wrapping render() in calls to the painter's begin()
and end() methods.
Either
[ ... ]
painter = QtGui.QPainter(self.svg)
self.render(self.painter)
or
[ ... ]
self.painter = QtGui.QPainter()
self.painter.begin(self.svg)
self.render(self.painter)
self.painter.end()
Since you probably don't need to make "painter" an instance variable, the
first option is probably the way to go.
David
--
David Boddie
Lead Technical Writer, Trolltech ASA
_______________________________________________
PyQt mailing list PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic