如何在QGIS程序启动时显示Python控制台


10

我想知道是否有一种方法可以在程序启动时直接打开Python控制台。可以为Python控制台设置快捷方式,但是在QGIS程序启动时找不到这样的选项。


有一种方法可以编写在QGIS启动时执行的文件,这对于此类自定义设置很有帮助。问题是您是否可以以编程方式打开控制台。你知道你能做到吗?
BritishSteel

我已经在API中进行搜索,但是与python相关的唯一类是QgsPythonRunner,但不是控制台。
马丁

Answers:


12

使用宏

您可以在打开项目时通过以下几行编写代码来启动QGIS Python控制台QGIS->Project->Project Properties

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

确保以这种方式在项目上启用宏: Settings->Options->General->Enable macros: Always


使用startup.py

当你想QGIS的Python控制台打开启动QGIS时,您可以创建(如果不存在的话)一个startup.py文件%APPDATA%\QGIS\QGIS3\,并写入:

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

编辑(以解决@Miro的后续问题)

正如Miro指出的,如果QGIS Python Console已打开,qgis.utils.iface.actionShowPythonDialog().trigger()则将其关闭,因此,如果我们正在编写QGIS插件,则了解Python Console是否处于打开(可见)状态可能是有意义的。

您可以通过运行以下代码来了解Python控制台是否不可见(然后将其打开):

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()

有没有办法检查控制台是否已经打开?因为如果是,那么trigger()将关闭它。
米罗2013年

@Miro,有办法!我已经按照说明编辑了答案。
赫尔曼·卡里略

1
在2.18中,项目宏有效,但是启动脚本无法打开控制台。
昏暗
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.