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

G. Allegri giohappy at gmail.com
Thu Jul 5 07:17:40 PDT 2012


2012/7/5 Marco Hugentobler <marco.hugentobler at sourcepole.ch>

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

ops, sorry :)


>
> 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 listQgis-developer at lists.osgeo.orghttp://lists.osgeo.org/mailman/listinfo/qgis-developer
>
>
>
> --
> Dr. Marco Hugentobler
> Sourcepole -  Linux & Open Source Solutions
> Weberstrasse 5, CH-8004 Zürich, Switzerlandmarco.hugentobler at sourcepole.ch http://www.sourcepole.ch
> Technical Advisor QGIS Project Steering Committee
>
>
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20120705/716e9f6f/attachment.html>


More information about the Qgis-developer mailing list