QGIS for Devs

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche

See also:

Python Console

In QGIS you can open a console using "Menu > Plugins" or "Ctrl-Alt-P". Then this window should show:

 1 Python Console 
 2 Use iface to access QGIS API interface or Type help(iface) for more info.
 3 _

Hint: If you do the following from the Python console:

  geom = iface.activeLayer().selectedFeatures()[0].geometry() 

As soon as you do anything with QgsGeometry object, QGIS crashes! This is a long standing unresolved issue 777 with python bindings. This works:

 feat = iface.activeLayer().selectedFeatures()[0]
 geom = QgsGeometry(feat.geometry())


  • geom.type(), geom.length(), geom.asPolyline() crashes if the line has three vertices, with only two vertices it returns an empty array.

See also e.g. Python Scripting (PyQGIS) on qgistutorials.com.

Writing Python plugins

There's a plugin interface for C++ and for Python:

See also:

Manual installation of a Python plugin

Die manuelle Installation eines Python-Plugins, das sich noch nicht in einem Repository befindet, passiert wie folgt:

  • Plugins befinden sich in QGIS standardmässig im Ordner .qgis2\python\plugins. Der Ordner .qgis2 wiederum befindet sich im Homeordner. Dieser ist zum Beispiel unter Windows C:\Users\Benutzername.
  • Dorthin gehören alle Programm- und Daten-Dateien.
  • Nach einem Neustart von QGIS kann man das Plugin unter Erweiterungen -> Plugins aktivieren, falls es nicht schon ist.


Her are some recommendations and guidelines:

Regarding In/Output:

  • A "File open..." dialog should open 1. in the user directory the first time it's used, 2. in the directory last used, 3. and this directory last used should be stored in the "Qt User Database".
  • Prefer Memory Layer, then GeoPackage over Shapefile, when there's a need to store or export results.

These are the User Interface Design (UX/GUI) Guidelines for QGIS (click-based! e.g. for desktops and laptops):

  1. You can find the (rather small) HIG (Human Interface Guidelines) in chap. 5 of "Developers guide for QGIS" https://github.com/qgis/QGIS/blob/master/CODING . See also starting on line 1441 of https://github.com/qgis/QGIS/blob/master/doc/CODING.t2t . HTML version here: http://htmlpreview.github.io/?https://raw.github.com/qgis/QGIS/master/doc/CODING.html#toc60 .
  2. In addition there is this (rather large) (Graphical) User Interface (UI/GUI) Design with Qt: http://qt-project.org/doc/qt-4.8/qt-gui-concepts.html .
  3. Finally, there exist the “Windows 8 App UX Guidelines”. This is only “good to know” and can be used in cases of doubt or where the two Guidelines (QGIS+Qt) don’t apply

User Interface Design (UX/GUI) Guidelines (touch-based! e.g. for tablets):

Testing Python Plugins

Publication of a Python Plugin

See 'How to publish a plugin'.