Lors de l'écriture de scripts python, QGIS ne les enregistre pas lorsque l'utilisateur enregistre son projet principal avec la ctrl+S
commande ou avec Project->Save
. De plus, en quittant QGIS, le programme ne met pas en garde contre les modifications non enregistrées dans les scripts python même s'il met en garde contre les modifications non enregistrées du projet et propose de les enregistrer.
Existe-t-il une option pour modifier ce comportement?
Je dois ajouter que l'utilisation de l'option de dialogue pour enregistrer le projet lors de la fermeture enregistre effectivement le projet, mais pas les scripts python. Celles-ci sont tout simplement perdues.
qgis
pyqgis
qgis-plugins
almerillat
la source
la source
Réponses:
Si vous souhaitez enregistrer le script python actuel dans l' éditeur Python à chaque fois que vous enregistrez votre projet, tapez ce qui suit dans la console:
Cela connecte essentiellement le projectSaved () signal au saveScriptFile () fonction de la console python.
Crédit Germán Carrillo pour sa réponse à ce poste où la réponse ci - dessus était basée sur.
Éditer:
Une méthode d'enregistrement automatique de tous les scripts consiste à modifier légèrement votre fichier de traitement console.py qui se trouve dans votre répertoire QGIS. Par exemple:
Trouvez la
def saveScriptFile(self):
fonction et remplacez la première ligne:avec ce qui suit et tout mettre en retrait après:
Pour qu'il ressemble à ceci:
Enregistrez le fichier.
Maintenant, nous devons créer un fichier startup.py dans votre
/.qgis2/python/
répertoire, ce fichier est chargé au démarrage de QGIS afin qu'il exécute tout code enregistré à l'intérieur. Incluez le code suivant:Enregistrez le fichier.
Maintenant, espérons-le, lorsque vous chargez QGIS et enregistrez un projet, tous les scripts ouverts dans l'éditeur de console doivent être enregistrés.
(Remarque: je suis certain que vous pouvez parcourir les scripts ouverts dans l'éditeur de console, mais ne l'avez pas encore trouvé. Ce serait une méthode bien meilleure et moins intrusive car elle évite de modifier le code source.)
la source