[Qgis-developer] porting the composer QPaintEngine hack to Python?
G. Allegri
giohappy at gmail.com
Thu Jul 5 07:39:42 PDT 2012
I fear it isn't possible (at least with common programming skills!) to
reproduce it.
My approach was too naive. The paintEngine instance is a pointer to a
subclass implementation, and AFACS there's no method to change the flags
(render features) of an instanciated engine...
giovanni
2012/7/5 G. Allegri <giohappy at gmail.com>
>
>
> 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/8c07da8b/attachment.html>
More information about the Qgis-developer
mailing list