Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I wish to develop a simple plugin for QGIS, which will open some data, and some specific processing.

I have quite a it of development experience with ESRI's Arcojects, but haven't developed with QGIS before.

I tried searching on the QGIS wiki, but only found this link :

which seems to be obsolete. There were also a few blog posts from 2006.

I also saw something about Python plugins, but I am not sure whether I need to work with the C++ plugin or a Python plugin.

Can Anyone guide me to the documentation, or tutorials that would help me get started

share|improve this question
Also subscribe to the user/dev list and send emails there if you have any questions – dassouki Oct 20 '11 at 18:24
up vote 22 down vote accepted

C++ plugins are less and less common these days. Most likely because they are more difficult to develop. Most documentation effort has been put into Python plugins. C++ still has it's place for performance critical things and functionality that is supposed to be merged into QGIS core (like new renderers for example).

There is a Plugin builder plugin which helps to create the basic plugin structure for you.

This workshop is a pretty good resource developing Python plugins: It covers:

  • Introduction to QGIS, Python, QT and PyQT
  • How Python can be used in QGIS
  • Building Python Plugins
  • Event-Driven Notes / Debugging / Plugin Repositories

The PyQGIS Cookbook offers a lot of code snippets for Python plugins:

The book PyQGIS Programmer's Guide is another good resource.

If you get stuck, the QGIS developer mailing list is there to help you.

share|improve this answer
The workshop link is an excellent resources. I require just a small clarification: What are the C++ plugin for? Is it obsolete? – Devdatta Tengshe Oct 20 '11 at 13:58
C++ plugins are not obsolete per se, but most documentation effort has been put into Python plugins. C++ still has it's place for performance critical things and functionality that is supposed to be merged into QGIS core. – underdark Oct 20 '11 at 14:03
thanks for the quick answer. – Devdatta Tengshe Oct 20 '11 at 14:10
@underdark: Site has several days down. Please, where to report for fixing it? Thanks. – xunilk Sep 9 '15 at 9:26
@xunilk the cached version is still accessible under…. for contacts, see copyright note in the bottom – underdark Sep 9 '15 at 15:40

Basically you need to know 3 things:
1) Python :
2) PyQT (to make the user interface, if you want one) :
3) Qgis API :

They are all very well documented, to get started I recommend you to browse through the modules of the Qgis API and play with the python console doing basic things like accessing the features of a vector layer.

Later, after you get the feel of the api, you can ask more specific questions here on GISse.
An Example: Using Qgis API and python, how can I return latitude and longitude of a point?

share|improve this answer
browsing the ftools code is usually a good point of start as it covers most of the vector functions used by the api and python – dassouki Oct 20 '11 at 18:28

There is also a QGIS Plugin-Creator, which prepares a basic skeleton of a plugin to get you started. It creates all necessary files for you.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.