banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 Mon 18 December 2023 12:13

rep20
Participant occasionnel
Date d'inscription: 6 May 2016
Messages: 27

QGIS/Ouverture: Lancement script python

Bonjour à tous,

Je viens d'écrire un script python qui permet de supprimer les couches temporaires vides sur un projet QGIS. Certains utilisateurs oublient de les supprimer avant de fermer les différents projets QGIS. Cela permet de nettoyer automatiquement les projets.

Le script fonctionne. J'aimerais faire en sorte qu'il s'éxecute automatiquement lors de l'ouverture de chaque projet. J'ai réussi à le faire fonctionner en passant par les propriétés/macros du projet. Comme il y a plusieurs projets avec le même profil je voudrais que ce script s'éxecute via les fichiers du profil. Cela permettrait de modifier une seule fois le profil plutôt que d'ouvrir tous les projets.

J'ai regardé via la création d'un fichier nommé startup.py dans les dossiers sources du profil. J'ai bien pointé les traitements python sur le dossier où ce trouve ce sript et passé l'execution des scripts en automatique.

Toutefois cela ne fonctionne pas. Je me demande où se trouve l'erreur car je n'ai aucun message d'erreur et quand je lance le script à la main cela fonctionne.

Auriez-vous une idée ou un conseil à suivre pour executer un script python lors de l'ouverture d'un ou plusieurs QGIS ?

Merci et bonne journée,

Dernière modification par rep20 (Mon 18 December 2023 13:39)

Hors ligne

 

#2 Mon 18 December 2023 16:57

YoLecomte
Participant assidu
Lieu: Epinal
Date d'inscription: 7 Jul 2015
Messages: 241

Re: QGIS/Ouverture: Lancement script python

Bonjour,

Via startup.py, votre code est exécuté avant que votre projet ne soit chargé. Lors de son exécution, les couches ne sont donc pas encore disponibles pour d'éventuels traitement python.

Cela explique pourquoi vous n'avez aucun message d'erreur et que rien ne se passe.

A mon avis, votre meilleur chance est de créer un plugin qui se connecte a https://qgis.org/pyqgis/3.2/gui/other/Q … rojectRead (cela peut surement être fais à l'initialisation du plugin) et qui exécute votre code lorsque le projet est chargé.

Là au moins vous serez sur que vos couches sont disponibles et vous pourrez interagir avec.

Hors ligne

 

#3 Mon 18 December 2023 17:02

rep20
Participant occasionnel
Date d'inscription: 6 May 2016
Messages: 27

Re: QGIS/Ouverture: Lancement script python

Bonjour,

Merci beaucoup pour votre réponse. Je vais regarder alors pour la création du plugin.

Hors ligne

 

Pied de page des forums

Powered by FluxBB