6

At my institute we are revising and updating a methodology for participatory mapping of land degradation, that involves creating a simple land use map, subdividing each land use unit in a number of sub-categories (e.g north vs. south exposed areas) and assigning quantitative and qualitative values to a certain number of pre-defined attributes (e.g cause of degradation, degradation level, counter measures implemented, ...).

We are exploring the idea of providing users with a custom made version of QGIS with a very simplified interface, and custom buttons to guide the users to the different steps of the evaluation.

Is this technically possible and allowed by the license terms?

9

There are different approaches to this.

Customization (+Plugin)

Customization is shipped with the official QGIS release. It offers to modify various parts of the user interface, like removing buttons and panels.

https://docs.qgis.org/3.4/en/docs/user_manual/introduction/qgis_configuration.html#customization

The customized UI can be saved in a .ini file and restored later on.

If you need custom additional buttons and logic, have a look at python plugins.

Standalone application

You can create a complete standalone application with the QGIS libraries. It allows you to do whatever you want but you will have to write a lot of business logic again which is not part of QGIS' public API which you get for free from stock QGIS with the customization + plugin version.

http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/intro.html#standalonescript

A standalone application can be written in python (or C++)

Fork

You can take the current source code and modify it to your liking. Be aware however that it will be a lot of work to maintain such a copy of the source code so unless there is a very good reason I would not do that.

If you start thinking about this approach, it will be best to write down why you want to do this and contact the QGIS developer to check if your changes can be made generic enough to be included upstream (while improving QGIS at the same time).

A fork needs to be written in C++


The license of QGIS is GPLv2+, so it allows you to take and modify the code and redistribute it under the same license. This means that you will have to ship a copy of your modified sourcecode with the application. As long as you do that, feel free to change it to your liking.

  • Great answer! Could you explain better the difference between a standalone app and the fork? What are the crucial differences? Which one requires more work? – ciskoh Jun 7 '16 at 11:20
  • I added some comments. Standalone is probably easier since you can just write it in python. And they should work with different library versions within the same release series (e.g. with any 2.x version) with no to minor changes, while updating a fork requires manual work to update the base libraries. – Matthias Kuhn Jun 7 '16 at 11:24
  • 3
    First link (linfiniti.com/2011/07/customizing-the-qgis-ui) is dead. – juminet Dec 15 '17 at 13:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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