Wenn Sie das aktuelle Python-Skript bei jedem Speichern Ihres Projekts im Python-Editor speichern möchten, geben Sie Folgendes in die Konsole ein:
from PyQt4.QtGui import QDockWidget
def save_project():
consoleWidget = iface.mainWindow().findChild( QDockWidget, 'PythonConsole' )
consoleWidget.console.saveScriptFile()
QgsProject.instance().projectSaved.connect(save_project)
Dies verbindet im Wesentlichen das projectSaved () -Signal mit der Funktion saveScriptFile () in der Python-Konsole.
Dank an Germán Carrillo für seine Antwort in diesem Beitrag, auf dem die obige Antwort basiert.
Bearbeiten:
Eine Methode zum automatischen Speichern aller Skripte besteht darin, die Verarbeitungsdatei console.py , die sich in Ihrem QGIS-Verzeichnis befindet, geringfügig zu ändern . Beispielsweise:
C:/Program Files/QGIS 2.18/apps/qgis/python/console/console.py
Suchen Sie die def saveScriptFile(self):
Funktion und ersetzen Sie die erste Zeile:
tabWidget = self.tabEditorWidget.currentWidget()
mit folgendem und alles danach einrücken:
for i in range(self.tabEditorWidget.count()):
tabWidget = self.tabEditorWidget.widget(i)
Damit es so aussieht:
def saveScriptFile(self):
for i in range(self.tabEditorWidget.count()):
tabWidget = self.tabEditorWidget.widget(i)
try:
tabWidget.save()
except (IOError, OSError) as error:
msgText = QCoreApplication.translate('PythonConsole',
'The file <b>{0}</b> could not be saved. Error: {1}').format(tabWidget.path,
error.strerror)
self.callWidgetMessageBarEditor(msgText, 2, False)
Speicher die Datei.
Jetzt müssen wir eine Startup.py- Datei in Ihrem /.qgis2/python/
Verzeichnis erstellen. Diese Datei wird beim Start von QGIS geladen, damit der darin gespeicherte Code ausgeführt wird. Fügen Sie den folgenden Code ein:
from qgis.core import QgsProject
from qgis.utils import iface
from PyQt4.QtGui import QDockWidget
def save_project():
consoleWidget = iface.mainWindow().findChild( QDockWidget, 'PythonConsole' )
consoleWidget.console.saveScriptFile()
QgsProject.instance().projectSaved.connect(save_project)
Speicher die Datei.
Wenn Sie jetzt QGIS laden und ein Projekt speichern, sollten hoffentlich alle geöffneten Skripte im Konsoleneditor gespeichert werden.
(Hinweis: Ich bin mir ziemlich sicher, dass Sie die geöffneten Skripte im Konsoleneditor durchlaufen können, sie aber noch nicht gefunden haben. Dies wäre eine viel bessere und weniger aufdringliche Methode, da dadurch das Ändern des Quellcodes vermieden wird.)