यदि आप अपनी परियोजना को बचाने के लिए हर बार पायथन संपादक में वर्तमान अजगर स्क्रिप्ट को बचाना चाहते हैं , तो निम्नलिखित को कंसोल में टाइप करें:
from PyQt4.QtGui import QDockWidget
def save_project():
consoleWidget = iface.mainWindow().findChild( QDockWidget, 'PythonConsole' )
consoleWidget.console.saveScriptFile()
QgsProject.instance().projectSaved.connect(save_project)
यह अनिवार्य रूप से प्रोजेक्ट कंसोल () सिग्नल को saveScriptFile () फ़ंक्शन से अजगर कंसोल में जोड़ता है।
इस पोस्ट में अपने उत्तर के लिए जर्मेन कारिलो को श्रेय दिया गया है जिसमें उपरोक्त उत्तर आधारित था।
संपादित करें:
सभी स्क्रिप्ट्स को स्वचालित रूप से सहेजने का एक तरीका यह है कि आप अपनी प्रोसेसिंग कंसोलहोम फ़ाइल को थोड़ा संशोधित करें जो आपकी QGIS निर्देशिका में मिल सकती है। उदाहरण के लिए:
C:/Program Files/QGIS 2.18/apps/qgis/python/console/console.py
def saveScriptFile(self):
फ़ंक्शन ढूंढें और पहली पंक्ति को बदलें:
tabWidget = self.tabEditorWidget.currentWidget()
निम्नलिखित के साथ और सब कुछ के बाद इंडेंट:
for i in range(self.tabEditorWidget.count()):
tabWidget = self.tabEditorWidget.widget(i)
ताकि यह ऐसा दिखे:
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)
फ़ाइल सहेजें।
अब हमें आपकी निर्देशिका में एक स्टार्टअप-थ्रू फ़ाइल बनाने की आवश्यकता है /.qgis2/python/
, क्यूजीआईएस शुरू होने पर यह फ़ाइल लोड हो जाती है, इसलिए यह अंदर सहेजे गए किसी भी कोड को चलाएगा। निम्नलिखित कोड शामिल करें:
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)
फ़ाइल सहेजें।
अब, उम्मीद है, जब आप QGIS लोड करते हैं और किसी प्रोजेक्ट को सहेजते हैं, तो कंसोल एडिटर में सभी खोली गई स्क्रिप्ट को सहेजा जाना चाहिए।
(नोट: मुझे पूरा यकीन है कि आप कंसोल एडिटर में खोली गई स्क्रिप्ट्स के माध्यम से पुनरावृति कर सकते हैं लेकिन अभी तक यह नहीं मिला है। यह बहुत बेहतर और कम दखल देने वाला तरीका होगा क्योंकि यह स्रोत कोड को बदलने से बचता है।)