Here is a short list of resources available when writing Python code in QGIS. If you know of others, please leave a comment.
Getting started with Python and QGIS can be a bit overwhelming. In this post we give you a quick start to get you up and running and maybe make your PyQGIS life a little easier.
There are likely many ways to setup a working PyQGIS development environment—this one works pretty well.
The Plugin Builder is a great tool for generating a working plugin project that you can customize.
One of the main tasks in the development cycle is deploying the plugin to the QGIS plugin directory for testing. Plugin Builder comes with a Makefile that can be used on Linux and OS X to aid in development. Depending on your configuration, the Makefile may work on Windows.
To help in managing development of your projects, we’ve come up with another option—a Python tool called pb_tool, which works anywhere QGIS runs.
If you’re a developer, or have looked at the QGIS source code, you’ve likely noticed that most C++ classes in the project start with Qgs.
Back before the dark ages of QGIS, Trolltech (now Digia) allowed you to reserve name prefixes for classes that used the Qt framework.
Shortly afterwards, I reserved the gs prefix for my use, resulting in class names that start with Qgs.
The PyQGIS Programmer’s Guide is now available in both paperback and PDF. A sample chapter is also available for download.
The book is fully compatible with the QGIS 2.x series of releases.
We’re planning a couple of training classes for March:
- Introduction to QGIS
- Extending QGIS with Python
Each is a one day class and we plan to run them back to back. If you are local or just want to come to Alaska in March for some spring skiing, northern lights viewing, or to experience the equinox, please hop over to GeoApt and let us know so we can plan accordingly.
When writing plugins or scripts it is often necessary to get information about the paths QGIS is using. For example, if we are writing a plugin that uses Python templates to create output based on user actions, we need to know the path to our installed plugin so we can find the templates. Fortunately the API provides an easy way to get at the information; here are a few examples: