#1 Thu 27 May 2021 10:04
- nico-29
- Participant assidu
- Lieu: Brest
- Date d'inscription: 2 Jun 2006
- Messages: 185
QGIS 3: plugin - evenement a la fermeture de QGIS
Bonjour,
Dans le cadre de développement d'un plugin QGIS, je voudrais activer un événement (suppression de fichiers temporaires crées par le plugin) lors de la fermeture de QGIS.
J'ai pensé mettre mes instructions de suppression de fichiers dans la fonction unload du plugin, mais je ne voudrais pas que ces fichiers soient supprimés lors du rechargement du plugin, mais uniquement à la fermeture 'définitive' de QGIS.
Comment faire?
Merci, Nico
Hors ligne
#2 Thu 27 May 2021 12:48
Re: QGIS 3: plugin - evenement a la fermeture de QGIS
Bonjour,
Tu as en fait 2 choix en plus de celui du nettoyage au "unload":
* Soit nettoyer au démarrage du plugin mais cela pose le même problème que le nettoyage à la fin c'est à dire le risque de nettoyer lors du rechargement/mise à jour du plugin (pas tous les jours non plus)
* Soit "écouter" via un signal Qt la fermeture de QGIS qui est en fait une instance de QgsApplication qui hérite de QApplication (celle ci dispose d'un signal aboutToQuit). C'est ce que le code ci-dessous fait. Il écrit un fichier dans le cadre de ce snippet de code
Code:
def doSomethinBeforeQuiting(): with open('/tmp/proof.txt', 'w') as outfile: outfile.write('Demo') QgsApplication.instance().aboutToQuit.connect(doSomethinBeforeQuiting)
Thomas
Hors ligne
#3 Thu 27 May 2021 15:28
- nico-29
- Participant assidu
- Lieu: Brest
- Date d'inscription: 2 Jun 2006
- Messages: 185
Re: QGIS 3: plugin - evenement a la fermeture de QGIS
où mettre l'instruction ?
Code:
QgsApplication.instance().aboutToQuit.connect(doSomethinBeforeQuiting)
dans __init__() ou dans initGui() ?
Nico
Hors ligne