[Qgis-developer] How to store a QIcon in QGIS project file?

alain al.bertho at free.fr
Sat Mar 7 09:38:49 PST 2015


Hello,

Maybe you can use a derived class, in python this would look like:

QIconWithPath(QIcon):
     def __init__(self,iconPath):
         super(QIconWithPath,self).__init__(iconPath)
         self.setIconPath(iconPath)

I'm not sure this is considered elegant...

Alain

Le 07/03/2015 17:06, Germán Carrillo a écrit :
> Hi All,
>
> I'd like to add a "Set Group Icon..." action to the context menu for 
> groups in the layer tree. I'm preparing a pull request for that.
>
> Everything is working fine, but I have a doubt on how to make the QGIS 
> project to store the QIcon (location), so that when the project is 
> open again, the QIcon can be constructed properly.
>
> My first attempt was to store the QIcon path in the project, which 
> works fine when the icon is set through QGIS GUI. However, it wouldn't 
> work for PyQGIS users, who pass a QIcon object to the setIcon() method 
> of QgsLayerTreeGroup. Since QIcon does not store its image file path, 
> it would not be possible to access the path and store it in the 
> project file. I would have to force PyQGIS users to set the image file 
> path via get/set functions iconPath()-setIconPath(), which is not very 
> elegant, but it's the only solution I see.
>
> Do you know any other solution for this problem? Perhaps something 
> about storing the QIcon somehow serialized?
>
> Regards,
>
> Germán Carrillo
> -- 
> -----------
>   |\__
> (:>__)(
>    |/
> Soluciones Geoinformáticas Libres
> http://geotux.tuxfamily.org/
> http://twitter.com/GeoTux2
>
>
> _______________________________________________
> 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/20150307/4d99a807/attachment.html>


More information about the Qgis-developer mailing list