Jak wyświetlić konsolę Python podczas uruchamiania programu QGIS

10

Zastanawiam się, czy istnieje sposób, aby otworzyć konsolę Python bezpośrednio przy uruchomieniu programu. Istnieje możliwość ustawienia skrótu do konsoli Python, ale nie mogę znaleźć takiej opcji do uruchomienia programu QGIS.

Jaskółka oknówka
źródło
Istnieje sposób na napisanie pliku, który zostanie wykonany po uruchomieniu QGIS, co może być pomocne w przypadku takich ustawień niestandardowych. Pytanie brzmi, czy możesz otworzyć konsolę programowo, czy nie. Czy wiesz, czy możesz to zrobić?
BritishSteel
Szukałem w interfejsie API, ale jedyną klasą związaną z pythonem jest QgsPythonRunner, który nie jest konsolą.
Martin

Odpowiedzi:

12

Korzystanie z makr

Możesz uruchomić konsolę QGIS Python podczas otwierania projektu , pisząc kilka wierszy w QGIS->Project->Project Properties:

def openProject():
    import qgis     
    qgis.utils.iface.actionShowPythonDialog().trigger()

Upewnij się, że włączasz makra w swoim projekcie, w ten sposób: Settings->Options->General->Enable macros: Always


Za pomocą startup.py

Jeśli chcesz, aby konsola QGIS Python otwierała się podczas uruchamiania QGIS , możesz utworzyć (jeśli jeszcze nie istnieje) startup.pyplik %APPDATA%\QGIS\QGIS3\i napisać:

import qgis     
qgis.utils.iface.actionShowPythonDialog().trigger()

EDYCJA (aby odpowiedzieć na pytanie uzupełniające autorstwa @Miro)

Jak zauważył Miro, jeśli QGIS Python Console jest otwarta, qgis.utils.iface.actionShowPythonDialog().trigger()zamknie ją, więc jeśli piszemy wtyczkę QGIS, warto wiedzieć, czy Python Console jest otwarta (widoczna), czy nie.

Możesz wiedzieć, czy konsola Python nie jest widoczna (a następnie otwórz ją), uruchamiając ten kod:

from qgis.PyQt.QtWidgets import QDockWidget
pythonConsole = iface.mainWindow().findChild(QDockWidget, 'PythonConsole')
if not pythonConsole or not pythonConsole.isVisible():
    from qgis.utils import iface
    iface.actionShowPythonDialog().trigger()
Germán Carrillo
źródło
Czy istnieje sposób sprawdzenia, czy konsola jest już otwarta? Ponieważ jeśli jest to trigger (), to go zamknie.
Miro
@Miro, istnieje sposób! Zredagowałem swoją odpowiedź z instrukcjami.
Germán Carrillo
1
W 2.18 makro projektu działa, ale skrypt uruchamiania nie otwiera konsoli.
podmrok