[Qgis-developer] porting the composer QPaintEngine hack to Python?

Marco Hugentobler marco.hugentobler at sourcepole.ch
Thu Jul 5 07:15:32 PDT 2012


 >made by Marco

made by Jürgen (it fixes the pdf shift on windows).

Marco

Am 05.07.2012 16:11, schrieb G. Allegri:
> 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
>
>
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer


-- 
Dr. Marco Hugentobler
Sourcepole -  Linux & Open Source Solutions
Weberstrasse 5, CH-8004 Zürich, Switzerland
marco.hugentobler at sourcepole.ch http://www.sourcepole.ch
Technical Advisor QGIS Project Steering Committee

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20120705/9d212df4/attachment-0001.html>


More information about the Qgis-developer mailing list