При написании скриптов на Python QGIS не сохраняет их, когда пользователь сохраняет свой основной проект с помощью ctrl+S
команды или Project->Save
. Кроме того, при выходе из QGIS программа не предупреждает о несохраненных изменениях в скриптах Python, даже если предупреждает о несохраненных изменениях в проекте и предлагает их сохранить.
Есть ли возможность изменить это поведение?
Я должен добавить, что использование опции диалога для сохранения проекта при выходе действительно сохраняет проект, но не скрипты Python. Те просто потеряны.
qgis
pyqgis
qgis-plugins
almerillat
источник
источник
Ответы:
Если вы хотите сохранять текущий скрипт Python в редакторе Python каждый раз, когда сохраняете свой проект, введите в консоль следующее:
Это по существу соединяет projectSaved () сигнал на saveScriptFile () функции в консоли питона.
Благодарим Германа Каррильо за его ответ в этом посте, на котором был основан ответ выше.
Редактировать:
Один из способов автоматического сохранения всех сценариев - это немного изменить ваш файл console.py для обработки, который находится в вашем каталоге QGIS. Например:
Найдите
def saveScriptFile(self):
функцию и замените первую строку:со следующим и отступом все после:
Так что это выглядит так:
Сохраните файл.
Теперь нам нужно создать файл startup.py в вашем
/.qgis2/python/
каталоге, этот файл загружается при запуске QGIS, поэтому он будет запускать любой код, сохраненный внутри. Включите следующий код:Сохраните файл.
Теперь, надеюсь, когда вы загрузите QGIS и сохраните проект, все открытые скрипты в редакторе консоли должны быть сохранены.
(Примечание: я совершенно уверен, что вы можете перебирать открытые скрипты в редакторе консоли, но еще не нашли его. Это был бы намного лучший и менее навязчивый метод, поскольку он избегал бы изменения исходного кода.)
источник