QGIS3 : QGIS C++ development


QGIS is an opensource desktop GIS with a large range of features and a fast pace of evolution. QGIS is mainly written in C++ and provides the ability to write extensions in C++ (or in Python, see QGIS1 training).

This training session will teach you how to develop C++ plugins for QGIS.

It includes first a presentation of QGIS source code organization, then Qt, the GUI library used in QGIS.

We then focus on C++ plugin development, starting with a basic plugin and then creating more complex interfaces.

This session is done in a *NIX (Unix/Linux) environment. For Windows platforms, please contact us for more information.


The course will give you the following skills :

  • Know the development environment for QGIS plugins development
  • Know QGIS plugin structure
  • Know Qt bases
  • Discover the QGIS API
  • Know how to develop a C++ QGIS plugin from scratch


3 days


Good C++ programming knowledge
Good GIS knowledge
Good QGIS knowledge as a user
*NIX systems knowledge


This program is indicative. It could be adapted to your specific needs.

  • QGIS project overview
    • OpenSource concepts
    • QGIS community
    • Development process and contribution
    • Ressources and documentation
  • Developer tools
    • Code editor
    • Git
    • Patch & Diff
    • GCC, Make, autotools
    • RedMine
  • Tools installation
  • Installing and compiling QGIS from source
  • QGIS Code organization
  • Qt
    • Introduction
    • General concepts
    • Examples
    • Layout management
    • Events and signals
    • Dialog windows
    • Widgets
  • QGIS plugin structure
  • Simple plugin analysis
    • Basic plugin development
    • Create a new plugin
    • Add the plugin to QGIS
    • Add new features
    • Maintain the plugin up-to-date
    • Create a plugin repository
  • Where to find documentation ?
  • QGIS Python API overview
  • Advanced PyQt use
    • QtWebkit
    • QtDesigner to create interfaces
  • Advanced plugin creation
    • Interface design with QtDesigner
    • Adding features


C++ development

Contact us for on-site training (dates are flexible to your needs).