[Gfoss] Associare un'icona ad un plugin

Giuseppe Sucameli sucameli a faunalia.it
Lun 2 Maggio 2011 14:36:17 CEST


Salve Michela,

2011/5/2 Michela Coletta <michela.coletta a gmail.com>

>   self.action = QAction(QIcon(':/plugins/Max_covering/icona.png'), 'Max
> Covering', self.iface.mainWindow())
>

i due punti (:) all'inizio del percorso indicano che è una risorsa, non un
semplice
percorso ad un file.

Puoi eliminare i due punti ed inserire il percorso completo come ha già
scritto Luca,
oppure creare un file di risorse resources.qrc ed aggiungerci le icone che
vuoi caricare.

Ti basterà copiare il file resources.qrc da un'altro plugin e modificarlo
con QtCreator
che offre un'interfaccia grafica per la modifica di tali file.

Una volta creato il file .qrc generi il relativo file .py delle risorse in
questo modo
pyrcc4 -o resources_rc.py resources.qrc

quindi ti basterà includere nel tuo codice python l'istruzione
import resources_rc
che caricherà il modulo con le risorse.

Ti chiederai perché complicarsi la vita in questo modo:
creare il file di risorse, compilarlo, importarlo nel codice.

1. Immagina di avere un'icona che usi nei posti più disparati.
Se avessi il percorso all'icona hardcoded nel codice e vorresti cambiarla
dovresti
modificare tutti i file che contengono il percorso all'icona.
Avendo un file di risorse ti basterà cambiare quello senza dover modificare
il codice
del tuo programma.

2. Altro caso, immagina di avere più file di risorse con temi di icone
differenti.
Potresti passare da uno all'altro semplicemente modificando l'istruzione
import resources_rc
che carica il tuo file di risorse nel progetto, senza dover modificare tutti
i percorsi
che hai nel tuo codice.

Capisco che inserire il path nel codice è più semplice, ma una volta che hai
preso
la mano con i file di risorse vedrai che in fin dei conti non sono così
complicati da
utilizzare.

Grazie in anticipo
>
> --
> Michela


Saluti.

-- 
Giuseppe Sucameli
-------------- parte successiva --------------
Un allegato HTML ? stato rimosso...
URL: <http://lists.gfoss.it/pipermail/gfoss/attachments/20110502/cfce235a/attachment.html>


Maggiori informazioni sulla lista Gfoss