重要

翻訳は あなたが参加できる コミュニティの取り組みです。このページは現在 76.71% 翻訳されています。

29.3. QGIS Python コンソール

この章の後半でご覧になるように、QGISはプラグインアーキテクチャで設計されています。プラグインはPythonで書くことができます。Pythonは地理空間分野では非常に有名なプログラミング言語です。

QGIS には、ユーザがオブジェクト(レイヤ、地物、インターフェイス)を対話的に利用できるように、Python API があります(コードのサンプルは PyQGIS 開発者用クックブック を参照して下さい)。また QGIS にはPythonコンソールもあります。

The QGIS Python Console is an interactive shell for Python command executions. It also has a Python file editor that allows you to edit and save your Python scripts. Both console and editor are based on PyQScintilla2 package. To open the console go to Plugins ► Python Console (Ctrl+Alt+P).

29.3.1. 対話型コンソール

The console is a Python interpreter that allows you to execute Python commands. Modules from QGIS (analysis, core, gui, server, processing, 3d) and Qt (QtCore, QtGui, QtNetwork, QtWidgets, QtXml) as well as Python's math, os, re and sys modules are already imported and can be used directly.

対話型コンソールは、ツールバー、入力エリア、および出力エリアから構成されています。

../../../_images/python_console.png

図 29.15 Python コンソール

29.3.1.1. ツールバー

ツールバーからは以下のツールを利用することができます。

  • clearConsole コンソールのクリア :出力エリアをクリアします。

  • start Run Command available in the input area: same as pressing Enter;

  • showEditorConsole エディタの表示コードエディタ の表示・非表示を切り替えます。

  • options Options...: opens a dialog to configure console properties;

  • helpContents Help... provides a menu to access various documentation:

  • dock Dock Code Editor to dock or undock the panel in QGIS interface

29.3.1.2. Input area

The Console input area main features are:

  • コード補完、シンタックスハイライト、加えて以下のAPIには入力候補をポップアップで表示します。

    • Python

    • PyQGIS

    • PyQt5

    • QScintilla2

    • osgeo-gdal-ogr

  • Ctrlキー+Altキー+SpacePythonコンソールの設定 で有効にしている場合は自動補完リストを表示する;

  • キーボード入力し Enter または コマンドを実行 を押して入力領域からコードスニペットを実行します。

  • コンテキストメニューから 選択部分を入力 を使用するか、 Ctrlキー+ E を押して、出力領域からコードスニペットを実行します。

  • UpDown の矢印キーを使用して、入力エリアからコマンド履歴を閲覧して、必要なコマンドを実行します。

  • Ctrlキー+シフト+ Space はコマンド履歴を表示するために:行をダブルクリックしてコマンドを実行します。 コマンド履歴 ダイアログはまた、入力エリアのコンテキストメニューからアクセスできます。

  • コマンドの履歴を保存して消去します。履歴はアクティブな user profile フォルダの下の console_history.txt ファイルに保存されます;

  • Type the following special commands:

    • ? to show a help of the Python Console

    • _api to open QGIS C++ API documentation or _api(object) for a specific object documentation (in QGIS C++ API or Qt API documentation)

    • _pyqgis to open QGIS Python API documentation or _pyqgis(object) for a specific object documentation (in QGIS Python API or Qt API documentation)

    • _cookbook to open PyQGIS Cookbook.

    • ! followed by a command to execute Shell commands from the Python Console. The console will start a subprocess, and forward its output to the Python Console Output. While the subprocess is running, the Python Console Input switches to STDIN mode and forwards entered character to the child process. This makes it possible to send confirmation when the child program asks for it. When the Console is in STDIN mode, pressing Ctrl+C kills the subprocess. It is also possible to affect the result of a command to a variable with the syntax var = !cmd

      >>> !echo QGIS Rocks!
      QGIS Rocks
      
      >>> !gdalinfo --version
      GDAL 3.6.2, released 2023/01/02
      
      >>> !pip install black
      # Install black python formatter using pip (if available)
      
      >>> sql_formats = !ogrinfo --formats | grep SQL
      >>> sql_formats
      ['SQLite -vector- (rw+v): SQLite / Spatialite', '  MSSQLSpatial -vector- (rw+): Microsoft SQL Server Spatial Database', '  PostgreSQL -vector- (rw+): PostgreSQL/PostGIS', '  MySQL -vector- (rw+): MySQL', '  PGDUMP -vector- (w+v): PostgreSQL SQL dump']
      

Tip

出力パネルから実行済コマンドを再利用します

Ctrlキー+ E いくつかのテキストを選択し、を押すと出力パネルからコードスニペットを実行できます。選択したテキストは、インタープリタプロンプト( >>>, ... )が含​​まれているかどうかは関係ありません。

29.3.2. コードエディタ

エディタウィジェットを有効にするには showEditorConsole Show Editor ボタンを使います。Pythonファイルの編集と保存が可能で、コードを管理するための高度な機能を提供します (コードのコメントとアンコメント、文法のチェック、GitHub経由でのコードの共有など)。主な機能は以下の通りです:

  • コード補完、シンタックスハイライト、加えて以下のAPIには入力候補をポップアップで表示します。

    • Python

    • PyQGIS

    • PyQt5

    • QScintilla2

    • osgeo-gdal-ogr

  • Ctrlキー+Space で自動補完のリストを表示。

  • コードスニペットを GitHub 経由で共有する。

  • Ctrl+4 構文チェック。

  • 検索バー(デフォルトのデスクトップ環境のショートカット、通常は Ctrl+F で開きます):

    • 次/前を検索するにはデフォルトのデスクトップ環境のショートカットを使用します( Ctrlキー+ GShiftキー+Ctrlキー+G )。

    • 検索ボックスに入力すると自動的に最初の一致を見つけます。

    • 検索を開くと選択範囲に最初の検索文字列を設定します。

    • Esc を押すと検索バーを閉じます。

  • オブジェクトインスペクタ:クラスと機能ブラウザ。

  • (オブジェクトインスペクタから)マウスでクリックすると、オブジェクトの定義に移動します。

  • コンテキストメニューの runConsole Run Selected コマンドでコードスニペットを実行します;

  • スクリプト全体を start Run Script コマンドで実行します(これにより、拡張子 .pyc のバイトコンパイルされたファイルが作成されます)。

注釈

コードエディタ は部分的または完全にからスクリプトを実行すると、コンソール出力領域に結果を出力します。

../../../_images/python_console_editor.png

図 29.16 Pythonコンソールエディタ

Tip

オプションを保存

コンソールのウィジェットの状態を保存するには、[閉じる]ボタンからPythonコンソールを閉じる必要があります。これにより、次の開始時に復元するためのジオメトリを保存できます。