﻿{"id":16360,"date":"2026-05-27T10:00:00","date_gmt":"2026-05-27T08:00:00","guid":{"rendered":"https:\/\/www.sigterritoires.fr\/?p=16360"},"modified":"2026-06-22T11:11:56","modified_gmt":"2026-06-22T09:11:56","slug":"create-qgis-plugin-with-plugin-builder","status":"publish","type":"post","link":"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/","title":{"rendered":"[EN]Developing a QGIS Plugin: Creating a Plugin with Plugin Builder"},"content":{"rendered":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Creating a QGIS plugin is much easier than it may seem, especially when you are new to programming. Thanks to <strong>Plugin Builder<\/strong>, you can generate the complete structure of a QGIS plugin in just a few minutes, without writing any complex code.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this second article of the tutorial series, we will see <strong>how to create your first QGIS plugin using Plugin Builder<\/strong>, step by step: installing the tool, choosing the right template, disabling advanced options, and generating the plugin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The goal is to <strong>quickly obtain a working plugin in QGIS<\/strong>, in order to understand the overall workflow before progressively diving into Python code.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contenu <\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#Creating_your_first_plugin_with_Plugin_Builder\" >Creating your first plugin with Plugin Builder<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#What_is_Plugin_Builder\" >What is Plugin Builder?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#Installing_Plugin_Builder\" >Installing Plugin Builder<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#Launching_the_creation_wizard\" >Launching the creation wizard<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#General_plugin_information\" >General plugin information<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#Plugin_name_and_description\" >Plugin name and description<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#Version_and_author\" >Version and author<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#Important_technical_settings\" >Important technical settings<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#Choosing_a_template\" >Choosing a template<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#Options_to_disable_when_starting\" >Options to disable when starting<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#Plugin_class\" >Plugin class<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#Menu_and_icon\" >Menu and icon<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#Generating_the_plugin\" >Generating the plugin<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#Where_should_the_plugin_be_placed\" >Where should the plugin be placed?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#Activating_the_plugin_in_QGIS\" >Activating the plugin in QGIS<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#Understanding_what_Plugin_Builder_created\" >Understanding what Plugin Builder created<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#Common_beginner_mistakes\" >Common beginner mistakes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#What_you_have_learned\" >What you have learned<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#Whats_next\" >What\u2019s next?<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Creating_your_first_plugin_with_Plugin_Builder\"><\/span>Creating your first plugin with Plugin Builder<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In the first article, we explained what QGIS plugins are used for and which files they are made of. Now it\u2019s time to move on to practice.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The objective of this article is simple: <strong>create a functional QGIS plugin without writing complex code<\/strong>, in order to understand the basic development cycle of a plugin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To do this, we will use an essential tool for beginners: <strong>Plugin Builder<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"What_is_Plugin_Builder\"><\/span>What is Plugin Builder?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Plugin Builder is an official QGIS plugin that automatically generates the skeleton of a QGIS plugin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It creates for you:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>the folder structure,<\/li>\n\n\n\n<li>the essential Python files,<\/li>\n\n\n\n<li>the <code>metadata.txt<\/code> file,<\/li>\n\n\n\n<li>a plugin that can be immediately loaded into QGIS.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Plugin Builder helps avoid common beginner mistakes and allows you to focus on what really matters: <strong>understanding and modifying an existing plugin<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Installing_Plugin_Builder\"><\/span>Installing Plugin Builder<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open QGIS<\/li>\n\n\n\n<li>Go to <strong>Plugins \u2192 Manage and Install Plugins<\/strong><\/li>\n\n\n\n<li>Search for <strong>Plugin Builder<\/strong><\/li>\n\n\n\n<li>Install it<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Once installed, Plugin Builder is available from the <strong>Plugins<\/strong> menu.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Launching_the_creation_wizard\"><\/span>Launching the creation wizard<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Go to <strong>Plugins \u2192 Plugin Builder \u2192 Plugin Builder<\/strong><\/li>\n\n\n\n<li>The creation wizard opens<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">You will need to fill in several fields. Don\u2019t worry: some of them are purely descriptive.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"General_plugin_information\"><\/span>General plugin information<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Plugin_name_and_description\"><\/span>Plugin name and description<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Plugin name<\/strong>: a user-friendly name (e.g. <em>MyFirstPlugin<\/em>)<\/li>\n\n\n\n<li><strong>Description<\/strong>: a short sentence explaining what the plugin does<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">These details will appear in the QGIS Plugin Manager.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Version_and_author\"><\/span>Version and author<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Version<\/strong>: start simply with <code>0.1<\/code><\/li>\n\n\n\n<li><strong>Author<\/strong>: your name or your organization\u2019s name<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Important_technical_settings\"><\/span>Important technical settings<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Choosing_a_template\"><\/span>Choosing a template<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Plugin Builder offers several templates.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For beginners, it is <strong>strongly recommended<\/strong> to choose:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Template: Tool button with dialog<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This template is the most educational because:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>it creates a toolbar button in QGIS,<\/li>\n\n\n\n<li>it prepares a simple graphical dialog,<\/li>\n\n\n\n<li>it matches the structure of most common plugins.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">It will serve as a solid foundation for the next articles.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Options_to_disable_when_starting\"><\/span>Options to disable when starting<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For a first plugin, it is recommended to <strong>disable all advanced options<\/strong>, especially:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Internationalization (translations)<\/li>\n\n\n\n<li>Help (embedded documentation)<\/li>\n\n\n\n<li>Unit testing<\/li>\n\n\n\n<li>Advanced packaging<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">These features are useful for mature plugins, but they unnecessarily complicate the structure for beginners.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We will come back to them later, once the basics are well understood.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Plugin_class\"><\/span>Plugin class<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Plugin Builder asks for the name of the main plugin class.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Plugin name: <code>MyFirstPlugin<\/code><\/li>\n\n\n\n<li>Class: <code>MyFirstPlugin<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">By convention, using the same name and capitalization helps avoid confusion.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Menu_and_icon\"><\/span>Menu and icon<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You can specify:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>the menu where the plugin will appear (usually <strong>Plugins<\/strong>),<\/li>\n\n\n\n<li>an icon (optional at this stage).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">These choices can easily be changed later.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Generating_the_plugin\"><\/span>Generating the plugin<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Once all fields are filled:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click <strong>Generate<\/strong><\/li>\n\n\n\n<li>Choose the destination folder<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Plugin Builder automatically creates the plugin folder with all required files.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Where_should_the_plugin_be_placed\"><\/span>Where should the plugin be placed?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For QGIS to detect the plugin, it must be located in the <strong>user plugins directory<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Depending on your system:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Windows<\/strong><br><code>C:\/Users\/...\/AppData\/Roaming\/QGIS\/QGIS3\/profiles\/default\/python\/plugins<\/code><\/li>\n\n\n\n<li><strong>Linux<\/strong><br><code>~\/.local\/share\/QGIS\/QGIS3\/profiles\/default\/python\/plugins<\/code><\/li>\n\n\n\n<li><strong>macOS<\/strong><br><code>~\/Library\/Application Support\/QGIS\/QGIS3\/profiles\/default\/python\/plugins<\/code><\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"> Tip: Plugin Builder usually suggests the correct folder by default.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Activating_the_plugin_in_QGIS\"><\/span>Activating the plugin in QGIS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open <strong>Plugins \u2192 Manage and Install Plugins<\/strong><\/li>\n\n\n\n<li>Go to the <strong>Installed<\/strong> tab<\/li>\n\n\n\n<li>Check your plugin<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">If everything went well, the plugin appears in the menu and can be activated.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"> At this stage, the plugin does almost nothing\u2026 and that\u2019s perfectly normal.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Understanding_what_Plugin_Builder_created\"><\/span>Understanding what Plugin Builder created<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before going any further, take some time to open the generated files:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>__init__.py<\/code><\/li>\n\n\n\n<li><code>metadata.txt<\/code><\/li>\n\n\n\n<li>the main Python file<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">You should now recognize the elements described in the previous article.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Common_beginner_mistakes\"><\/span>Common beginner mistakes<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The plugin does not appear \u2192 wrong folder<\/li>\n\n\n\n<li>Error when loading \u2192 incorrect class name or capitalization<\/li>\n\n\n\n<li>QGIS refuses the plugin \u2192 incorrect minimum QGIS version<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">These errors are normal and part of the learning process.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"What_you_have_learned\"><\/span>What you have learned<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">By the end of this article, you now know how to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>install Plugin Builder,<\/li>\n\n\n\n<li>generate an empty QGIS plugin,<\/li>\n\n\n\n<li>install it locally,<\/li>\n\n\n\n<li>activate it in QGIS.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">You have crossed an important milestone: <strong>you are officially a QGIS plugin developer<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Whats_next\"><\/span>What\u2019s next?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/develop-qgis-plugin-add-button-dialog\/\" title=\"\">In the next article<\/a>, we will see:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>how to add a button to QGIS,<\/li>\n\n\n\n<li>how to display a simple dialog window,<\/li>\n\n\n\n<li>how to structure the code without getting lost.<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"> A plugin that does nothing today can become a powerful tool tomorrow.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Creating a QGIS plugin is much easier than it may seem, especially when you are new to programming. Thanks to Plugin Builder, you can generate the complete structure of a QGIS plugin in just a few&hellip;<\/p>\n","protected":false},"author":1,"featured_media":16328,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"sfsi_plus_gutenberg_text_before_share":"","sfsi_plus_gutenberg_show_text_before_share":"","sfsi_plus_gutenberg_icon_type":"","sfsi_plus_gutenberg_icon_alignemt":"","sfsi_plus_gutenburg_max_per_row":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[3394,1377],"tags":[4141,4143,4139,4137,4115,4145],"class_list":["post-16360","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pluigin-en","category-qgis-en","tag-develop-qgis-plugin","tag-qgis-plugin-beginner","tag-qgis-plugin-builder","tag-qgis-plugin-development","tag-qgis-plugin-tutorial","tag-qgis-python-plugin"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.9 - aioseo.com -->\n\t<meta name=\"description\" content=\"Learn how to create a QGIS plugin using Plugin Builder. A step-by-step tutorial for beginners, from creating to activating the plugin.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Atilio Francois\"\/>\n\t<meta name=\"google-site-verification\" content=\"ByXHZUbGNn7RNv-Xk5A-ysTZrM65VLIO2RxfSJ2nIEQ\" \/>\n\t<meta name=\"keywords\" content=\"develop qgis plugin,qgis plugin beginner,qgis plugin builder,qgis plugin development,qgis plugin tutorial,qgis python plugin\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.9\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Blog SIG &amp; Territoires | le portail des professionnels du SIG\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Creating a QGIS Plugin with Plugin Builder \u2013 A Beginner&#039;s Guide\" \/>\n\t\t<meta property=\"og:description\" content=\"Learn how to create a QGIS plugin using Plugin Builder. A step-by-step tutorial for beginners, from creating to activating the plugin.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-05-27T08:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-06-22T09:11:56+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/atilio.francois\/\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@SigTerritoires\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Creating a QGIS Plugin with Plugin Builder \u2013 A Beginner&#039;s Guide\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Learn how to create a QGIS plugin using Plugin Builder. A step-by-step tutorial for beginners, from creating to activating the plugin.\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@SigTerritoires\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/en\\\/create-qgis-plugin-with-plugin-builder\\\/#article\",\"name\":\"Creating a QGIS Plugin with Plugin Builder \\u2013 A Beginner's Guide\",\"headline\":\"[EN]Developing a QGIS Plugin: Creating a Plugin with Plugin Builder\",\"author\":{\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/author\\\/admin\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.sigterritoires.fr\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/pluginsQGIS2.jpg?fit=409%2C307&ssl=1\",\"width\":409,\"height\":307},\"datePublished\":\"2026-05-27T10:00:00+02:00\",\"dateModified\":\"2026-06-22T11:11:56+02:00\",\"inLanguage\":\"fr-FR\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/en\\\/create-qgis-plugin-with-plugin-builder\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/en\\\/create-qgis-plugin-with-plugin-builder\\\/#webpage\"},\"articleSection\":\"Plugin, QGis, develop QGIS plugin, QGIS plugin beginner, QGIS Plugin Builder, QGIS plugin development, QGIS plugin tutorial, QGIS Python plugin, English\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/en\\\/create-qgis-plugin-with-plugin-builder\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.sigterritoires.fr\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/en\\\/category\\\/qgis-en\\\/#listItem\",\"name\":\"QGis\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/en\\\/category\\\/qgis-en\\\/#listItem\",\"position\":2,\"name\":\"QGis\",\"item\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/en\\\/category\\\/qgis-en\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/en\\\/category\\\/qgis-en\\\/pluigin-en\\\/#listItem\",\"name\":\"Plugin\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/en\\\/category\\\/qgis-en\\\/pluigin-en\\\/#listItem\",\"position\":3,\"name\":\"Plugin\",\"item\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/en\\\/category\\\/qgis-en\\\/pluigin-en\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/en\\\/create-qgis-plugin-with-plugin-builder\\\/#listItem\",\"name\":\"[EN]Developing a QGIS Plugin: Creating a Plugin with Plugin Builder\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/en\\\/category\\\/qgis-en\\\/#listItem\",\"name\":\"QGis\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/en\\\/create-qgis-plugin-with-plugin-builder\\\/#listItem\",\"position\":4,\"name\":\"[EN]Developing a QGIS Plugin: Creating a Plugin with Plugin Builder\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/en\\\/category\\\/qgis-en\\\/pluigin-en\\\/#listItem\",\"name\":\"Plugin\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/#person\",\"name\":\"Atilio Francois\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/en\\\/create-qgis-plugin-with-plugin-builder\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f76dc2a720162999bce81d6c99b6d7b9517d6600ad7ceb5ed5268f02cefaa0ee?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Atilio Francois\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/author\\\/admin\\\/#author\",\"url\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/author\\\/admin\\\/\",\"name\":\"Atilio Francois\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/en\\\/create-qgis-plugin-with-plugin-builder\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f76dc2a720162999bce81d6c99b6d7b9517d6600ad7ceb5ed5268f02cefaa0ee?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Atilio Francois\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/en\\\/create-qgis-plugin-with-plugin-builder\\\/#webpage\",\"url\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/en\\\/create-qgis-plugin-with-plugin-builder\\\/\",\"name\":\"Creating a QGIS Plugin with Plugin Builder \\u2013 A Beginner's Guide\",\"description\":\"Learn how to create a QGIS plugin using Plugin Builder. A step-by-step tutorial for beginners, from creating to activating the plugin.\",\"inLanguage\":\"fr-FR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/en\\\/create-qgis-plugin-with-plugin-builder\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/author\\\/admin\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/author\\\/admin\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.sigterritoires.fr\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/pluginsQGIS2.jpg?fit=409%2C307&ssl=1\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/en\\\/create-qgis-plugin-with-plugin-builder\\\/#mainImage\",\"width\":409,\"height\":307},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/en\\\/create-qgis-plugin-with-plugin-builder\\\/#mainImage\"},\"datePublished\":\"2026-05-27T10:00:00+02:00\",\"dateModified\":\"2026-06-22T11:11:56+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/#website\",\"url\":\"https:\\\/\\\/www.sigterritoires.fr\\\/\",\"name\":\"Blog SIG & Territoires\",\"description\":\"le portail des professionnels du SIG\",\"inLanguage\":\"fr-FR\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Creating a QGIS Plugin with Plugin Builder \u2013 A Beginner's Guide","description":"Learn how to create a QGIS plugin using Plugin Builder. A step-by-step tutorial for beginners, from creating to activating the plugin.","canonical_url":"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/","robots":"max-image-preview:large","keywords":"develop qgis plugin,qgis plugin beginner,qgis plugin builder,qgis plugin development,qgis plugin tutorial,qgis python plugin","webmasterTools":{"google-site-verification":"ByXHZUbGNn7RNv-Xk5A-ysTZrM65VLIO2RxfSJ2nIEQ","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#article","name":"Creating a QGIS Plugin with Plugin Builder \u2013 A Beginner's Guide","headline":"[EN]Developing a QGIS Plugin: Creating a Plugin with Plugin Builder","author":{"@id":"https:\/\/www.sigterritoires.fr\/index.php\/author\/admin\/#author"},"publisher":{"@id":"https:\/\/www.sigterritoires.fr\/#person"},"image":{"@type":"ImageObject","url":"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2026\/01\/pluginsQGIS2.jpg?fit=409%2C307&ssl=1","width":409,"height":307},"datePublished":"2026-05-27T10:00:00+02:00","dateModified":"2026-06-22T11:11:56+02:00","inLanguage":"fr-FR","mainEntityOfPage":{"@id":"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#webpage"},"isPartOf":{"@id":"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#webpage"},"articleSection":"Plugin, QGis, develop QGIS plugin, QGIS plugin beginner, QGIS Plugin Builder, QGIS plugin development, QGIS plugin tutorial, QGIS Python plugin, English"},{"@type":"BreadcrumbList","@id":"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr#listItem","position":1,"name":"Home","item":"https:\/\/www.sigterritoires.fr","nextItem":{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr\/index.php\/en\/category\/qgis-en\/#listItem","name":"QGis"}},{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr\/index.php\/en\/category\/qgis-en\/#listItem","position":2,"name":"QGis","item":"https:\/\/www.sigterritoires.fr\/index.php\/en\/category\/qgis-en\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr\/index.php\/en\/category\/qgis-en\/pluigin-en\/#listItem","name":"Plugin"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr\/index.php\/en\/category\/qgis-en\/pluigin-en\/#listItem","position":3,"name":"Plugin","item":"https:\/\/www.sigterritoires.fr\/index.php\/en\/category\/qgis-en\/pluigin-en\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#listItem","name":"[EN]Developing a QGIS Plugin: Creating a Plugin with Plugin Builder"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr\/index.php\/en\/category\/qgis-en\/#listItem","name":"QGis"}},{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#listItem","position":4,"name":"[EN]Developing a QGIS Plugin: Creating a Plugin with Plugin Builder","previousItem":{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr\/index.php\/en\/category\/qgis-en\/pluigin-en\/#listItem","name":"Plugin"}}]},{"@type":"Person","@id":"https:\/\/www.sigterritoires.fr\/#person","name":"Atilio Francois","image":{"@type":"ImageObject","@id":"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/f76dc2a720162999bce81d6c99b6d7b9517d6600ad7ceb5ed5268f02cefaa0ee?s=96&d=mm&r=g","width":96,"height":96,"caption":"Atilio Francois"}},{"@type":"Person","@id":"https:\/\/www.sigterritoires.fr\/index.php\/author\/admin\/#author","url":"https:\/\/www.sigterritoires.fr\/index.php\/author\/admin\/","name":"Atilio Francois","image":{"@type":"ImageObject","@id":"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/f76dc2a720162999bce81d6c99b6d7b9517d6600ad7ceb5ed5268f02cefaa0ee?s=96&d=mm&r=g","width":96,"height":96,"caption":"Atilio Francois"}},{"@type":"WebPage","@id":"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#webpage","url":"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/","name":"Creating a QGIS Plugin with Plugin Builder \u2013 A Beginner's Guide","description":"Learn how to create a QGIS plugin using Plugin Builder. A step-by-step tutorial for beginners, from creating to activating the plugin.","inLanguage":"fr-FR","isPartOf":{"@id":"https:\/\/www.sigterritoires.fr\/#website"},"breadcrumb":{"@id":"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#breadcrumblist"},"author":{"@id":"https:\/\/www.sigterritoires.fr\/index.php\/author\/admin\/#author"},"creator":{"@id":"https:\/\/www.sigterritoires.fr\/index.php\/author\/admin\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2026\/01\/pluginsQGIS2.jpg?fit=409%2C307&ssl=1","@id":"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#mainImage","width":409,"height":307},"primaryImageOfPage":{"@id":"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/#mainImage"},"datePublished":"2026-05-27T10:00:00+02:00","dateModified":"2026-06-22T11:11:56+02:00"},{"@type":"WebSite","@id":"https:\/\/www.sigterritoires.fr\/#website","url":"https:\/\/www.sigterritoires.fr\/","name":"Blog SIG & Territoires","description":"le portail des professionnels du SIG","inLanguage":"fr-FR","publisher":{"@id":"https:\/\/www.sigterritoires.fr\/#person"}}]},"og:locale":"fr_FR","og:site_name":"Blog SIG &amp; Territoires | le portail des professionnels du SIG","og:type":"article","og:title":"Creating a QGIS Plugin with Plugin Builder \u2013 A Beginner's Guide","og:description":"Learn how to create a QGIS plugin using Plugin Builder. A step-by-step tutorial for beginners, from creating to activating the plugin.","og:url":"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/","article:published_time":"2026-05-27T08:00:00+00:00","article:modified_time":"2026-06-22T09:11:56+00:00","article:publisher":"https:\/\/www.facebook.com\/atilio.francois\/","twitter:card":"summary","twitter:site":"@SigTerritoires","twitter:title":"Creating a QGIS Plugin with Plugin Builder \u2013 A Beginner's Guide","twitter:description":"Learn how to create a QGIS plugin using Plugin Builder. A step-by-step tutorial for beginners, from creating to activating the plugin.","twitter:creator":"@SigTerritoires"},"aioseo_meta_data":{"post_id":"16360","title":"Creating a QGIS Plugin with Plugin Builder \u2013 A Beginner's Guide","description":"Learn how to create a QGIS plugin using Plugin Builder. A step-by-step tutorial for beginners, from creating to activating the plugin.","keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":[],"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2026-02-01 12:24:02","updated":"2026-06-22 09:57:08","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.sigterritoires.fr\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/category\/qgis-en\/\" title=\"QGis\">QGis<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/category\/qgis-en\/pluigin-en\/\" title=\"Plugin\">Plugin<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t[EN]Developing a QGIS Plugin: Creating a Plugin with Plugin Builder\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.sigterritoires.fr"},{"label":"QGis","link":"https:\/\/www.sigterritoires.fr\/index.php\/en\/category\/qgis-en\/"},{"label":"Plugin","link":"https:\/\/www.sigterritoires.fr\/index.php\/en\/category\/qgis-en\/pluigin-en\/"},{"label":"[EN]Developing a QGIS Plugin: Creating a Plugin with Plugin Builder","link":"https:\/\/www.sigterritoires.fr\/index.php\/en\/create-qgis-plugin-with-plugin-builder\/"}],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2026\/01\/pluginsQGIS2.jpg?fit=409%2C307&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p6XU0A-4fS","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/16360","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/comments?post=16360"}],"version-history":[{"count":0,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/16360\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media\/16328"}],"wp:attachment":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media?parent=16360"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/categories?post=16360"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/tags?post=16360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}