So zeigen Sie die Python-Konsole beim Start des QGIS-Programms an

10

Ich frage mich, ob es eine Möglichkeit gibt, die Python-Konsole direkt beim Programmstart zu öffnen. Es besteht die Möglichkeit, eine Verknüpfung für die Python-Konsole festzulegen, aber ich kann keine solche Option für den Start des QGIS-Programms finden.

Martin
quelle
Es gibt eine Möglichkeit, eine Datei zu schreiben, die beim Start von QGIS ausgeführt wird. Dies kann für benutzerdefinierte Einstellungen wie diese hilfreich sein. Die Frage ist, ob Sie die Konsole programmgesteuert öffnen können oder nicht. Wissen Sie, ob Sie das können?
BritishSteel
Ich habe in der API gesucht, aber die einzige Klasse, die sich auf Python bezieht, ist der QgsPythonRunner, der nicht die Konsole ist.
Martin

Antworten:

12

Makros verwenden

Sie können die QGIS Python-Konsole beim Öffnen eines Projekts starten, indem Sie einige Zeilen in Folgendes schreiben QGIS->Project->Project Properties:

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

Stellen Sie sicher, dass Sie Makros in Ihrem Projekt folgendermaßen aktivieren: Settings->Options->General->Enable macros: Always


Verwenden von startup.py

Da die QGIS Python-Konsole beim Starten von QGIS geöffnet werden soll , können Sie eine startup.pyDatei erstellen (falls noch nicht vorhanden) %APPDATA%\QGIS\QGIS3\und Folgendes schreiben:

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

BEARBEITEN (um eine Folgefrage von @Miro zu beantworten)

Wie von Miro hervorgehoben, wird QGIS Python Console geschlossen, wenn es geöffnet ist. qgis.utils.iface.actionShowPythonDialog().trigger()Wenn wir also ein QGIS-Plugin schreiben, ist es möglicherweise sinnvoll zu wissen, ob die Python Console geöffnet (sichtbar) ist oder nicht.

Sie können feststellen, ob die Python-Konsole nicht sichtbar ist (und sie dann öffnen), indem Sie diesen Code ausführen:

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
quelle
Gibt es eine Möglichkeit zu überprüfen, ob die Konsole bereits geöffnet ist? Denn wenn es der Trigger ist () wird er es schließen.
Miro
@Miro, es gibt einen Weg! Ich habe meine Antwort mit Anweisungen bearbeitet.
Germán Carrillo
1
In 2.18 funktioniert das Projektmakro, aber das Startskript kann die Konsole nicht öffnen.
Underdark