重要

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

29.3. QGIS Python コンソール

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

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

QGIS PythonコンソールはPythonコマンド実行用の対話型シェルです。自分のPythonスクリプトを編集して保存するためのPythonファイルエディタも付属しています。コンソールとエディタはどちらもPyQScintilla2パッケージに基づいています。コンソールを開くには プラグイン ► Python コンソール (Ctrl+Alt+P) を選択します。

29.3.1. 対話型コンソール

コンソールはPythonインタープリターであり、Pythonコマンドを実行することができます。QGIS(analysis、core、gui、server、processing、3D)およびQt(QtCore、QtGui、QtNetwork、QtWidgets、QtXml)のモジュール、ならびにPythonのmath、os、re、sysモジュールはすでにインポートされており、直接使用することができます。

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

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

図 29.15 Python コンソール

29.3.1.1. ツールバー

ツールバーからは以下のツールを利用できます:

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

  • 入力エリアで使用できる start コマンドの実行: Enter キーを押すのと同じです;

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

  • options オプション...コンソールのプロパティ を設定するためのダイアログを開きます;

  • helpContents ヘルプ... 様々なドキュメントにアクセスするためのメニューを提供します:

  • dock コードエディタをドッキング は、QGISインターフェイスにパネルをドッキングしたり解除したりします

29.3.1.2. 入力エリア

コンソール入力エリアの主な機能は以下のとおりです:

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

    • Python

    • PyQGIS

    • PyQt5

    • QScintilla2

    • osgeo-gdal-ogr

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

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

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

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

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

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

  • 以下の特殊コマンドを入力します:

    • ? はPythonコンソールのヘルプを表示します

    • _apiQGIS C++ API ドキュメントを開き、_api(object) は特定のオブジェクトのドキュメント(QGIS C++ API または Qt API ドキュメント)を開きます

    • _pyqgisQGIS Python API ドキュメントを開き、_pyqgis(object) は特定のオブジェクトのドキュメント(QGIS Python API または Qt API ドキュメント)を開きます

    • _cookbookPyQGIS Cookbook を開きます。

    • ! にコマンドを続けるとPythonコンソールからシェルコマンドを実行します。コンソールはサブプロセスを開始し、その出力をPythonコンソール出力に転送します。サブプロセスが実行されている間、Pythonコンソール入力はSTDINモードに切り替わり、入力された文字を子プロセスに転送します。これにより、子プログラムが確認を要求する場合に、それを送ることができます。コンソールがSTDINモードの場合、Ctrlキー+C を押すとサブプロセスが終了します。また、構文 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 エディタの表示 ボタンを使います。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コンソールを閉じる必要があります。これにより、次の開始時に復元するためのジオメトリを保存できます。