Jika Anda ingin menyimpan skrip python saat ini di Python Editor setiap kali Anda menyimpan proyek Anda, ketikkan yang berikut ke konsol:
from PyQt4.QtGui import QDockWidget
def save_project():
consoleWidget = iface.mainWindow().findChild( QDockWidget, 'PythonConsole' )
consoleWidget.console.saveScriptFile()
QgsProject.instance().projectSaved.connect(save_project)
Ini pada dasarnya menghubungkan projectSaved () sinyal ke saveScriptFile () fungsi dalam konsol python.
Penghargaan untuk Germán Carrillo atas jawabannya dalam posting ini yang menjadi dasar jawaban di atas.
Edit:
Salah satu metode untuk secara otomatis menyimpan semua skrip adalah dengan sedikit memodifikasi file console.py pemrosesan Anda yang dapat ditemukan di direktori QGIS Anda. Sebagai contoh:
C:/Program Files/QGIS 2.18/apps/qgis/python/console/console.py
Temukan def saveScriptFile(self):
fungsinya dan ganti baris pertama:
tabWidget = self.tabEditorWidget.currentWidget()
dengan yang berikut dan inden semuanya setelah:
for i in range(self.tabEditorWidget.count()):
tabWidget = self.tabEditorWidget.widget(i)
Sehingga terlihat seperti:
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)
Simpan file.
Sekarang kita perlu membuat file startup.py di /.qgis2/python/
direktori Anda , file ini dimuat ketika QGIS dijalankan sehingga akan menjalankan kode yang disimpan di dalamnya. Sertakan kode berikut:
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)
Simpan file.
Sekarang, mudah-mudahan, ketika Anda memuat QGIS dan menyimpan proyek, semua skrip yang dibuka di editor konsol harus disimpan.
(Catatan: Saya cukup yakin Anda dapat mengulangi skrip yang dibuka di editor konsol tetapi belum menemukannya. Ini akan menjadi metode yang jauh lebih baik dan tidak mengganggu karena tidak mengubah kode sumber.)