Cara menampilkan konsol Python saat program QGIS dimulai

10

Saya ingin tahu apakah ada cara untuk membuka konsol Python langsung pada saat peluncuran program. Ada kemungkinan untuk mengatur pintasan untuk konsol Python, tetapi saya tidak dapat menemukan opsi seperti itu untuk peluncuran program QGIS.

Martin
sumber
Ada cara untuk menulis file yang dijalankan ketika QGIS mulai, yang dapat membantu untuk pengaturan khusus seperti ini. Pertanyaannya adalah apakah Anda dapat membuka programmaticaly konsol atau tidak. Apakah Anda tahu jika Anda bisa melakukannya?
BritishSteel
Saya sudah mencari di API tetapi satu-satunya kelas yang berhubungan dengan python adalah QgsPythonRunner, yang bukan konsol.
Martin

Jawaban:

12

Menggunakan makro

Anda dapat memulai konsol QGIS Python saat membuka proyek dengan menulis beberapa baris di QGIS->Project->Project Properties:

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

Pastikan Anda mengaktifkan makro di proyek Anda, dengan cara ini: Settings->Options->General->Enable macros: Always


Menggunakan startup.py

Karena Anda ingin konsol Python QGIS terbuka saat meluncurkan QGIS , Anda dapat membuat (jika belum ada) startup.pyfile di dalam %APPDATA%\QGIS\QGIS3\dan tulis:

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

EDIT (untuk menjawab pertanyaan tindak lanjut oleh @Miro)

Seperti yang ditunjukkan oleh Miro, jika QGIS Python Console terbuka, qgis.utils.iface.actionShowPythonDialog().trigger()akan menutupnya, jadi, jika kita menulis plugin QGIS, mungkin masuk akal untuk mengetahui apakah Python Console terbuka (terlihat) atau tidak.

Anda bisa tahu apakah Konsol Python tidak terlihat (dan kemudian membukanya) dengan menjalankan kode ini:

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
sumber
Apakah ada cara untuk memeriksa apakah konsol sudah terbuka? Karena jika itu pemicu () akan menutupnya.
Miro
@Miro, ada jalan! Saya telah mengedit jawaban saya dengan instruksi.
Germán Carrillo
1
Di 2.18, makro proyek berfungsi tetapi skrip startup gagal membuka konsol.
underdark