Cómo mostrar la consola de Python al inicio del programa QGIS

10

Me pregunto si hay una manera de abrir la consola de Python directamente al iniciar el programa. Existe la posibilidad de establecer un acceso directo para la consola de Python, pero no puedo encontrar esa opción para el lanzamiento del programa QGIS.

Martín
fuente
Hay una manera de escribir un archivo que se ejecuta cuando se inicia QGIS, que puede ser útil para configuraciones personalizadas como estas. La pregunta es si puede abrir la consola programáticamente o no. ¿Sabes si puedes hacer eso?
BritishSteel
He buscado en la API, pero la única clase relacionada con Python es QgsPythonRunner, que no es la consola.
Martin

Respuestas:

12

Usando macros

Puede iniciar la consola QGIS Python al abrir un proyecto escribiendo un par de líneas en QGIS->Project->Project Properties:

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

Asegúrese de habilitar macros en su proyecto, de esta manera: Settings->Options->General->Enable macros: Always


Usando startup.py

Como desea que la consola QGIS Python se abra al iniciar QGIS , puede crear (si aún no existe) un startup.pyarchivo %APPDATA%\QGIS\QGIS3\y escribir:

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

EDITAR (para abordar una pregunta de seguimiento de @Miro)

Como señaló Miro, si QGIS Python Console está abierta, la qgis.utils.iface.actionShowPythonDialog().trigger()cerrará, por lo tanto, si estamos escribiendo un complemento QGIS, podría tener sentido saber si Python Console está abierta (visible) o no.

Puede saber si la consola de Python no está visible (y luego abrirla) ejecutando este código:

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
fuente
¿Hay alguna manera de verificar si la consola ya está abierta? Porque si es el disparador () lo va a cerrar.
Miro
@Miro, hay una manera! He editado mi respuesta con instrucciones.
Germán Carrillo
1
En 2.18, la macro del proyecto funciona pero el script de inicio no puede abrir la consola.
oscuro