Podczas pisania skryptów Python QGIS nie zapisuje ich, gdy użytkownik zapisuje swój główny projekt za pomocą ctrl+S
polecenia lub Project->Save
. Poza tym, opuszczając QGIS, program nie ostrzega o niezapisanych zmianach w skryptach Pythona, nawet jeśli ostrzega o niezapisanych zmianach w projekcie i oferuje ich zapisanie.
Czy jest jakaś opcja zmiany tego zachowania?
Powinienem dodać, że użycie opcji dialogowej do zapisania projektu przy wychodzeniu rzeczywiście zapisuje projekt, ale nie skrypty Pythona. Te są po prostu zagubione.
qgis
pyqgis
qgis-plugins
almerillat
źródło
źródło
Odpowiedzi:
Jeśli chcesz zapisać bieżący skrypt Pythona w Edytorze Python za każdym razem, gdy zapisujesz projekt, wpisz następujące polecenie w konsoli:
To w zasadzie łączy projectSaved () sygnał do saveScriptFile () funkcji w konsoli Pythona.
Kredyt do Germán Carrillo na jego odpowiedź w tym wątku , w którym powyższa odpowiedź była oparta na.
Edytować:
Jedną z metod automatycznego zapisywania wszystkich skryptów jest nieznaczna modyfikacja pliku console.py przetwarzania , który można znaleźć w katalogu QGIS. Na przykład:
Znajdź
def saveScriptFile(self):
funkcję i zastąp pierwszy wiersz:z następującymi i wcięcie wszystkiego po:
Aby wyglądało to tak:
Zapisz plik.
Teraz musimy utworzyć plik startup.py w twoim
/.qgis2/python/
katalogu, ten plik jest ładowany podczas uruchamiania QGIS, aby mógł uruchomić dowolny kod zapisany w nim. Dołącz następujący kod:Zapisz plik.
Mam nadzieję, że teraz, gdy załadujesz QGIS i zapiszesz projekt, wszystkie otwarte skrypty w edytorze konsoli powinny zostać zapisane.
(Uwaga: jestem pewien, że możesz iterować przez otwarte skrypty w edytorze konsoli, ale jeszcze go nie znalazłem. Byłaby to znacznie lepsza i mniej inwazyjna metoda, ponieważ pozwala uniknąć zmiany kodu źródłowego).
źródło