Como mostrar o console Python no início do programa QGIS

10

Gostaria de saber se existe uma maneira de abrir o console Python diretamente no lançamento do programa. Existe a possibilidade de definir um atalho para o console Python, mas não consigo encontrar essa opção para o lançamento do programa QGIS.

Martin
fonte
Existe uma maneira de escrever um arquivo que é executado quando o QGIS é iniciado, o que pode ser útil para configurações personalizadas como estas. A questão é se você pode abrir o console programaticamente ou não. Você sabe se você pode fazer isso?
BritishSteel 02/02
Eu procurei na API, mas a única classe relacionada ao python é o QgsPythonRunner, que não é o console.
Martin

Respostas:

12

Usando macros

Você pode iniciar o console QGIS Python ao abrir um projeto , escrevendo algumas linhas em QGIS->Project->Project Properties:

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

Certifique-se de habilitar macros no seu projeto, desta maneira: Settings->Options->General->Enable macros: Always


Usando startup.py

Como você deseja que o console do QGIS Python seja aberto ao iniciar o QGIS , você pode criar (se já não existir) um startup.pyarquivo %APPDATA%\QGIS\QGIS3\e escrever:

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

EDIT (para responder a uma pergunta de acompanhamento de @Miro)

Conforme apontado por Miro, se o QGIS Python Console estiver aberto, ele qgis.utils.iface.actionShowPythonDialog().trigger()será fechado, portanto, se estivermos escrevendo um plugin QGIS, pode fazer sentido saber se o Python Console está aberto (visível) ou não.

Você pode saber se o Python Console não está visível (e abra-o) executando 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
fonte
Existe uma maneira de verificar se o console já está aberto? Porque se é o trigger () vai fechá-lo.
Miro
@Miro, existe um caminho! Eu editei minha resposta com instruções.
Germán Carrillo
11
Na 2.18, a macro do projeto funciona, mas o script de inicialização falha ao abrir o console.
Underdark