[Qgis-developer] porting the composer QPaintEngine hack to Python?
G. Allegri
giohappy at gmail.com
Thu Jul 5 07:11:26 PDT 2012
Vincent highlighted a hack in the composer PDF rendering (made by Marco)
[1].
I was trying to reproduce it in Python, to test if it can solve some
problems in the Atlas plugin.
I thought I could use the QPrinter.setEngines() method [2], to set an
instance of a derived QPaintEngine intitated with the flags provided in the
hack, but this method makes QGis crash. I was doing something like this
(excerpt):
paintE = self.getHackedPaintEngine
printE = printer.printEngine()
printer.setEngines(printE,paintE)
def getHackedPaintEngine(self):
class HackEngine(QPaintEngine):
def __init__(self):
QPaintEngine.__init__(self,
QPaintEngine.PrimitiveTransform
| QPaintEngine.PixmapTransform
| QPaintEngine.PatternBrush
| QPaintEngine.AlphaBlend
| QPaintEngine.PainterPaths
| QPaintEngine.Antialiasing
| QPaintEngine.BrushStroke
| QPaintEngine.ConstantOpacity
| QPaintEngine.MaskedBrush
| QPaintEngine.BlendModes
| QPaintEngine.RasterOpModes
)
return HackEngine()
What alternative way would you suggest to reproduce the hack?
giovanni
[1]
https://github.com/qgis/Quantum-GIS/blob/master/src/app/composer/qgscomposer.cpp#L588
[2]
http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qprinter.html#setEngines
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20120705/4d4b4702/attachment.html>
More information about the Qgis-developer
mailing list