﻿{"id":16308,"date":"2026-06-02T10:00:00","date_gmt":"2026-06-02T08:00:00","guid":{"rendered":"https:\/\/www.sigterritoires.fr\/?p=16308"},"modified":"2026-05-27T18:46:10","modified_gmt":"2026-05-27T16:46:10","slug":"plugin-qgis-ajouter-bouton-fenetre","status":"publish","type":"post","link":"https:\/\/www.sigterritoires.fr\/index.php\/plugin-qgis-ajouter-bouton-fenetre\/","title":{"rendered":"[FR]D\u00e9velopper Un Plugin Qgis : Ajouter Un Bouton Et Une Fen\u00eatre"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Ajouter un bouton dans l\u2019interface de QGIS est souvent la premi\u00e8re \u00e9tape concr\u00e8te lorsqu\u2019on d\u00e9veloppe un plugin. C\u2019est ce qui transforme un simple script Python en <strong>outil r\u00e9ellement utilisable par l\u2019utilisateur<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans ce troisi\u00e8me article du tutoriel, nous allons voir <strong>comment ajouter un bouton et afficher une fen\u00eatre dans un <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/plugin-qgis-debutant-introduction\/\">plugin QGIS<\/a><\/strong>, en nous appuyant sur le code g\u00e9n\u00e9r\u00e9 par Plugin Builder. Nous prendrons le temps de comprendre les \u00e9l\u00e9ments essentiels : la m\u00e9thode <code>initGui()<\/code>, les actions (<code>QAction<\/code>) et le d\u00e9clenchement du dialogue.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ce tutoriel s\u2019adresse aux <strong>d\u00e9butants en d\u00e9veloppement de plugins QGIS<\/strong>, qui souhaitent comprendre comment interagir avec l\u2019interface de QGIS avant d\u2019aller plus loin dans la logique m\u00e9tier.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\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_83 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\/plugin-qgis-ajouter-bouton-fenetre\/#Ajouter_un_bouton_et_afficher_une_fenetre_dans_QGIS\" >Ajouter un bouton et afficher une fen\u00eatre dans QGIS<\/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\/plugin-qgis-ajouter-bouton-fenetre\/#Rappel_le_plugin_genere_par_Plugin_Builder\" >Rappel : le plugin g\u00e9n\u00e9r\u00e9 par 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\/plugin-qgis-ajouter-bouton-fenetre\/#Le_fichier_principal_du_plugin\" >Le fichier principal du plugin<\/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\/plugin-qgis-ajouter-bouton-fenetre\/#La_methode_initGui_point_dentree_visuel\" >La m\u00e9thode initGui() : point d\u2019entr\u00e9e visuel<\/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\/plugin-qgis-ajouter-bouton-fenetre\/#La_methode_run_quand_on_clique_sur_le_bouton\" >La m\u00e9thode run() : quand on clique sur le bouton<\/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\/plugin-qgis-ajouter-bouton-fenetre\/#%F0%9F%93%A6_Ce_que_fait_vraiment_un_bouton_dans_QGIS\" >&#x1f4e6; Ce que fait vraiment un bouton dans QGIS<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/plugin-qgis-ajouter-bouton-fenetre\/#Comprendre_la_fenetre_dialog\" >Comprendre la fen\u00eatre (dialog)<\/a><\/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\/plugin-qgis-ajouter-bouton-fenetre\/#Modifier_le_texte_de_la_fenetre\" >Modifier le texte de la fen\u00eatre<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/plugin-qgis-ajouter-bouton-fenetre\/#Tester_et_recharger_le_plugin\" >Tester et recharger le plugin<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/plugin-qgis-ajouter-bouton-fenetre\/#Erreurs_frequentes_a_ce_stade\" >Erreurs fr\u00e9quentes \u00e0 ce stade<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/plugin-qgis-ajouter-bouton-fenetre\/#Ce_que_vous_avez_appris\" >Ce que vous avez appris<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/plugin-qgis-ajouter-bouton-fenetre\/#Et_dans_le_prochain_article\" >Et dans le prochain article ?<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Ajouter_un_bouton_et_afficher_une_fenetre_dans_QGIS\"><\/span>Ajouter un bouton et afficher une fen\u00eatre dans QGIS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dans les deux premiers articles, nous avons pos\u00e9 les bases : <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/plugin-qgis-debutant-introduction\/\" title=\"\">comprendre ce qu\u2019est un plugin QGIS<\/a> et <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/creer-plugin-qgis-plugin-builder\/\" title=\"\">cr\u00e9er un plugin vide \u00e0 l\u2019aide de Plugin Builder<\/a>. Il est maintenant temps de donner <strong>un comportement visible<\/strong> \u00e0 notre plugin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans cet article, nous allons apprendre \u00e0 :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ajouter un bouton dans l\u2019interface de QGIS,<\/li>\n\n\n\n<li>comprendre le code g\u00e9n\u00e9r\u00e9 par Plugin Builder,<\/li>\n\n\n\n<li>afficher une fen\u00eatre (dialog) simple.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019objectif n\u2019est pas encore de faire quelque chose de complexe, mais de <strong>comprendre le m\u00e9canisme fondamental<\/strong> de tout plugin QGIS.<\/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=\"Rappel_le_plugin_genere_par_Plugin_Builder\"><\/span>Rappel : le plugin g\u00e9n\u00e9r\u00e9 par Plugin Builder<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Lorsque nous avons choisi le template <em>Tool button with dialog<\/em>, Plugin Builder a d\u00e9j\u00e0 pr\u00e9par\u00e9 beaucoup de choses pour nous :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>un bouton dans la barre d\u2019outils,<\/li>\n\n\n\n<li>un menu dans QGIS,<\/li>\n\n\n\n<li>une fen\u00eatre graphique associ\u00e9e.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">M\u00eame si cela fonctionne d\u00e9j\u00e0, il est essentiel de <strong>comprendre comment tout cela est reli\u00e9<\/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=\"Le_fichier_principal_du_plugin\"><\/span>Le fichier principal du plugin<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ouvrez le fichier Python principal de votre plugin (par exemple <code>mon_premier_plugin.py<\/code>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vous y trouverez une classe principale qui porte le nom du plugin. C\u2019est elle qui pilote tout le comportement.<\/p>\n\n\n<div class='stb-container stb-style-black'><div class='stb-caption'><div class='stb-logo'><img class='stb-logo__image' src='data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN\/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz\/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH\/w\/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA\/g88wAAKCRFRHgg\/P9eM4Ors7ONo62Dl8t6r8G\/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt\/qIl7gRoXgugdfeLZrIPQLUAoOnaV\/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl\/AV\/1s+X48\/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H\/LcL\/\/wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93\/+8\/\/UegJQCAZkmScQAAXkQkLlTKsz\/HCAAARKCBKrBBG\/TBGCzABhzBBdzBC\/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD\/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q\/pH5Z\/YkGWcNMw09DpFGgsV\/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY\/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4\/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L\/1U\/W36p\/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N\/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26\/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE\/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV\/MN8C3yLfLT8Nvnl+F30N\/I\/9k\/3r\/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt\/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi\/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a\/zYnKOZarnivN7cyzytuQN5zvn\/\/tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO\/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3\/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA\/0HIw6217nU1R3SPVRSj9Yr60cOxx++\/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3\/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX\/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8\/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb\/1tWeOT3dvfN6b\/fF9\/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR\/cGhYPP\/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF\/6i\/suuFxYvfvjV69fO0ZjRoZfyl5O\/bXyl\/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o\/2j5sfVT0Kf7kxmTk\/8EA5jz\/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5\/wAAgOkAAHUwAADqYAAAOpgAABdvkl\/FRgAAD59JREFUeNrsmnmMXVd9xz9nucvbZvF4GdtjO46dhcRZSGmCSIAExaUFQtoiUVSgFFQBFaISRaBSoH9QVaUUAU2VSrSVoGELSgRpGshCA8GQYGfBcVZsx47j2dc3M2\/ee3c55\/z6xxubpOSPCSX8QXOkq3ve1ZXO+dzfcr7nd54SEX4TmuY3pL0E8hLIi9Ts8z08Ojr3nN9iAgklzdl54iRBCBROcXx8kTgynBxvcuN3D\/Lk0TFtrNmiQrHnA++48qz3vu2KM0VYd\/jYhPrAJ77cHptenqrV0hNac9gH\/Wi73W5bLbz7rZdx9Wv2MDk+RV4UVBoNQhkofUHaV0fCcxPSu669dm0gL8ikWmGtGWy3O+dqFa48d9vQqx99\/MQF01NLGwb6BxJr4fYfPs7iYhcdPCHrLjsJY319tf22kd7T7XR+EkROAO5XbpG1tCBCCNKfZcXe8cmFd1SMvOmc7ZvM7p0jHBltc9UVF9PJFV\/6+r185ZYHGN52Jko8zeZS39z84nl7zt1x3puvPv89N912YEwr\/Q3vw80hhPt\/rSAhBKpJcvnWTYMfuuk7D72FIFz3qXdzbLTJR\/\/pLuKBjdz+4CS3PTDOTXc+QiWJ2LqxD18UlBFs3taHTgZptiPqfUMj3Ux9RIL+k1q9fn2z2fxXYPrFBxHB2uj9Q+v6\/nrThnjbKy85h0svOoPtm4dYLhUbRraw2HV85+FJlFZsP+cMNNDOcogNpi\/ionPWc8bGKnf++Dg7tqznlZeMMDDQtymtJJ8S1Ou8hL8KhAMvGohI0Cay\/1BvND6YJpWkXqtxzesu4Mb\/Psz9Nx1i64YGjeF1dLolmyINSqGCICFgfRUpPT4rObrgIPZ86M9ex3lnrCNNYWx6AQ3U+\/quHB2b+lpfLf3L0he3\/upBRFSSVv+5Uq38eb1SUY16leVOyT9+8yHufGQSSSyPtT1FJaVSq6KNQikFBIIP4DziPFFW0ml1mex45tqeTUMNjo3P8eRTTepVTSWJue\/A47sG+tMvXnjBrkQrfVPQYXUS6v8ColBKqXaWfyatpO+vVaqqUU1ZWMr47Lce4ZsPjlMdqFFppGSRIUpiImvQSvXGDYHECN55sszh05xKYnnv3nO45pLtPDOzxF987kfY4HnDq7bS6XaoN\/pR2g0rrT7\/zDMnl7NW985IB2A1DV9zzdpAQvDPwcha7fdFJnywWkl1f73Ccjfw8Rse5LYnptk0Moitppg0xiYRylq0VSilQQkEQYtQ1SK6k6si15SR5Ws\/HaUQGK4Y9l6+i6KbMT7f4a59T7E8d5wdm2NqtXRrrW4\/7Z0fVbgnRIUXZhHXnkQpCEFotctLa7X6RwcHBpO+WoX5VsGnbz7E3cfn2bx9iKiWYqopNo3RscVEEUor0KrnCOIpCw8aUqMRoxBtGG91mG3nvPW3d\/F7l2ymcCUHD0+ysNjmwANzHD4+yuzcAm97y+UXp\/XKJ4vW8p9ao3PU87uXej4Zf\/2X\/xMfAo1aXL3wZVu+UvroD\/c\/OsMr9uzglgcmuOngBBu3rcM2qkTV9LRFTGyJkghR+ufjBY+4gCtLQlmiypKaBM4aiPnkVbuppxGtlQ7dLMP7AudKHnjsaZqLy0xOT9NaaeGkIJLyXaEovhIQ+eyn\/nZtFvnYF+6m0y15+XnDr7\/u42988w23Psm\/33aYN77+YprKsmFzP1E1wVZibDUmqsSYNMEkEcYa0KBYDXYREecxRqtgFDnIpprh46\/doeqJoSwd1hisMRQltHPHzpF1bFhXYXhTnbt\/dJCJySZbhvs+stBc\/J4ry8k1i8ZaAoMN07hw99B7Dj05a2\/dd4zLf+tMrnrFDtZvqJNbgyQRNo2wadyLjzTCxhZtNFpptFYorUgiEyppJDqJeq4XW3X59n7VV4lwLpxORkortNYoFHnh6WYlWV5y7lkjWGOYXWjtiZJ0b5Skas0g3SzDqnD+xsHK74gyXHnpLqr9NbpeuOjMIX53zzCNaoSJLcZaTGTQ0erkFav3Xox4Ee0VykYaYy1RZHnZUK2X0f+XvysUIoJWGqM1BEjThN1nbqHV6pI5eZcytrpmkLN3btJFKVdNzXbivVfs5FWXbOPEbIcb95\/kwdFFFgpPmkRoazBWY6zBaIM+DcFqvzc7AaV1710HHJzrnF4V1LNgRAmIoFTvudYaVwaGhvqIraGbla\/RqB1rBumrJVsaib3yth88zZdufozLzh\/mrB2DLBWek8sZj8ys0CwDohRaK7QCo1atoBT6WXetFEYrdG+hR2mIrH7u4hYEEQheCNLrA6c\/iHeBXbtHWGq27A\/2PX75mtNvu1NcGLzsUTriq7cfYaG0GKu5+oJh\/uCKM5npeh5e6HKsK3R9oL66UD37657qqtVr9Q1io7nr5DIXDibh5Rsb2jlHQABBIygBQRCRU8sfPgTi2DI42GCpefjlawYps3y3c7I+rcY4rzg23uKP33Qer71ohJ3Dg73PGjzfG13mxqdXmCgDKgrE2vyCiNCnbO4EJQGNsJCV\/NfTTT1Sj9lQjdCiyfPAUidHGcEahQ+ChJ6FAPK8ZHjLRrZsXb99zSBTUwu7RKWxUoZaJeaho002PzzNta88g6IoUNqitWLvjn4u3lDjtrE2t8\/kOK9IIv2s4F31\/RAQ7xDvIQRSA\/vGFhmbX+GanQPUDDxxdJYfHjjBxTtqXLSzThIHfPCE4PG+FzvOOdrtzvo1g+RlWG8ji9IGUFRjQyO1dPKCOOoFLWhCEDZUI959dj\/dsMQtE13iJKJiNbHpZa3gheAd4jwSAoSeZkq14sh8m78fXUA6npUTc7Snltj\/03HeuXcrey9dj\/ehdwVPEMG7QNbN62sXjX5Fi7WI9OODkEQRl501QGyEbl4SiyKJY4zWeBdQGi5dFyMIjy2VLDrPYiYkBhIFwQckeCQ4vHeIc0jpSEQwSpN1utjS01+JaHtP4XvS3zmP8wHnHKherAQRvWaQUE5nSpZwJicrhxiuj7BlncV5hy\/l55kpijBGEzycP5Bw0VDKTNezWHoems+5Z7pDy3m0BMR7gu+5SnC9S7xAIYTlHApP8AGDZ\/+hCc7bZkjiQFmWlM5hjGFqYoaVpaV87SAhn1AevFtBqZj52SmeODbFzpF+NEJe9NKnCMRRhDWKVPf01daaZSuWc\/tTtieKv9s\/BsGjvcc7TyhKQubwWYlkjmxukWx2npAVhDLD5V2enmlx4GHHay\/bTlGWpy1SZCW+LBfXDCKBY6KlLd7V4jSQ5wXfvOMJ9py1iR3DgxRFcWrHSJBAbC3amOesH8ZoWq2M5swSqRKU94TCIXlJyD1SONxKl2xmFp93CWWJ+Jzgc5R3tDs5RVGSFwVBAqDIiwJt7PQLsEj5Mx30uEh5dnAFlUrg6IkZjpyYY9vGBi4EUD054UXwIWC1xhiDUQprNHcdnubz9xxDZyUKIZSBUPYAxHlCt6RoNnF5hlVQrVraKzlOhCjSbByq0O50KZ0DFGXpmJqaR+DwmkGMsY8GCQeCL84WlyG+ACLuO3iSi8\/ZSH+9QhaEEHoZxTuPtbonU7QmNoZ7j0wxNr7IhmqM855QBsR5KAOhdD2I9gpKAt47Mi8ECXgX2DbcYOf2AZbaHXwIaK1YWlrBRhak+Mnas1ZwLRG5W7x7p\/cZynVIk4Tv7z+OF817rr2ATevr5CEQQoTXntJprLGksSEoj1vJ0Z0cJwFxq\/v2AFJ6yuVFytZyb30JHgm+l81Cz1V3bu1DESjyAq2htZLxzMlpnA8zutL3yJq1lpICI+V9oWjPBl8QXAcJXbTk3PHjo9xx33FEHN08J8tzsrwgywoIJZ0s4+v7jrPv0AQV73HtHN8tkMwTugVFc4FyebGXxcSDBE6JK1GgDDRXurS7GS54tNaMjs8xt7DM0nLrWyLMrtkiShlQ8gzivhpc8aFQZnizglWW1Gh++vg4b7hiB2kS4XwgspZqGrHv0Czff3iGnxxZIAhUYk0vnAx4T7GySJmt9MYIAUVACIgKBNWzjIhneaVLN8vxzrO80ub4yRlOjk64bH7sG6EsyzWDaG0BCh\/CjS5vv01ruzmYDkFbEMXs3ALziysMDVTRyuFtRBwJ37nvGX5wcIb+WkwUWUoXUNogoUPZXiSU2bMEbwB6VhHxq0AeE2nQUDqH4JlvtphdyOm285vLlYUD4oq1Fx867cXVNOwfUjb9N2OTv1FaoTCIh9YSjE7O0VfbjHMFA32KsekuE9OLVG1Ai8M7UFrjshY+W0a862lyAcEhEnpVllV5rNCgVneYRoN4jo8ucf+jC3TbxYRV4QtOmxyl1w4S\/CnrKe87zeuVhFcrM3yViEYHYcWXHH5qgl3bhxARxmcLbrrrGCdGF4jihOAEKPHFCr7soJRCUIgLQOjt6bXuSWP9XKGPBLSJuPfRJU6Md2h1Db7sfM5Lfn+0buR0PK0ta52i7m3VZspO8xMmqvyHTWW3IIgrmZiepZN1cWXg8afmeezIBL4EqwNlURKKDiIepQ1B9SaI0ihrfg5gev1ToAjg4ampgMs1hDq+eeSGfPnp6021f3XHpdYOctoPFUhwEMJ9WWvqw6nwRVthOOA59MgRXnHRDvobdb59x0Hml0rq9Qr5coEEhzYWpTTBF70al7Eos1p91Aqs6YEoiyjTS6C+Fx\/agLWK7twTd2ULRz+m4yh71uzWDlK2pn6hbCriblW9Ea8zSWNkbnqW7975AG\/5\/SvYOGiYHB8j8xHKxChtkeAQQFmDMRGo0JvsqiVEW5SOQEUoFSGsQolBjCZfPnJX0TrxXqWjCQi\/ZBH7eQJKKYvP298ubXM5iPucjuoXPv7okwytS+iraiLpIC5FCChvwGiiJAGjCMGhTG\/VRxvQFqViRKUok4CJCSZC4hrBefLxR25wnZMfVTpe8znJCzsfURqUvtt1l\/5Il9knlK28\/d59D9I\/2I9WAe8ygit6ApIERW9j5kShYbUebIEYpSpgKoS0BtUGqjGAa05N5RMHPlPOP\/0v2jTyF\/WgR6EQpX7m85X3aV\/ekRXZh\/MsvzipVNHWYuIY5xxaCWXZqx+b2BKCweURVmKgjsR9qL4BosF1BAvFxGPfkPbKdeXcU\/uVTn9dZ4gKlGoH774quHs2rq9fneWdtxeFeU21Fsfbt2yg3S2YWchRcYwyhjS2NBqWjq+QNCxxwyN6diZ65vu3LPbt\/np7Zemg8WpZ2WQtIfErPtXtlezHrOHL2vCt9uzkSL0irxqsb7pkpdU5o56Y9VhbGxoweudIcJFeWGqtzEy6vH20ODl\/f27qDymTzKqklWFiCL\/8wa566U81L4G8BPL\/A+R\/BgAzCInEE2+\/LgAAAABJRU5ErkJggg==' alt='img'\/><\/div><div class='stb-caption-content'><\/div><div class='stb-tool'><\/div><\/div><div class='stb-content'><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class MonPremierPlugin:\n    def __init__(self, iface):\n        self.iface = iface\n<\/code><\/pre>\n\n\n<p><\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">&#x1f449; <code>iface<\/code> est l\u2019objet qui permet au plugin de dialoguer avec QGIS (menus, couches, messages\u2026).<\/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=\"La_methode_initGui_point_dentree_visuel\"><\/span>La m\u00e9thode <code>initGui()<\/code> : point d\u2019entr\u00e9e visuel<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La m\u00e9thode <code>initGui()<\/code> est appel\u00e9e automatiquement lorsque le plugin est activ\u00e9 dans QGIS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C\u2019est ici que sont d\u00e9finis :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>le bouton dans la barre d\u2019outils,<\/li>\n\n\n\n<li>l\u2019entr\u00e9e de menu,<\/li>\n\n\n\n<li>l\u2019action associ\u00e9e.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Extrait typique :<\/p>\n\n\n<div class='stb-container stb-style-black'><div class='stb-caption'><div class='stb-logo'><img class='stb-logo__image' src='data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN\/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz\/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH\/w\/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA\/g88wAAKCRFRHgg\/P9eM4Ors7ONo62Dl8t6r8G\/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt\/qIl7gRoXgugdfeLZrIPQLUAoOnaV\/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl\/AV\/1s+X48\/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H\/LcL\/\/wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93\/+8\/\/UegJQCAZkmScQAAXkQkLlTKsz\/HCAAARKCBKrBBG\/TBGCzABhzBBdzBC\/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD\/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q\/pH5Z\/YkGWcNMw09DpFGgsV\/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY\/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4\/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L\/1U\/W36p\/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N\/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26\/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE\/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV\/MN8C3yLfLT8Nvnl+F30N\/I\/9k\/3r\/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt\/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi\/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a\/zYnKOZarnivN7cyzytuQN5zvn\/\/tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO\/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3\/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA\/0HIw6217nU1R3SPVRSj9Yr60cOxx++\/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3\/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX\/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8\/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb\/1tWeOT3dvfN6b\/fF9\/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR\/cGhYPP\/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF\/6i\/suuFxYvfvjV69fO0ZjRoZfyl5O\/bXyl\/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o\/2j5sfVT0Kf7kxmTk\/8EA5jz\/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5\/wAAgOkAAHUwAADqYAAAOpgAABdvkl\/FRgAAD59JREFUeNrsmnmMXVd9xz9nucvbZvF4GdtjO46dhcRZSGmCSIAExaUFQtoiUVSgFFQBFaISRaBSoH9QVaUUAU2VSrSVoGELSgRpGshCA8GQYGfBcVZsx47j2dc3M2\/ee3c55\/z6xxubpOSPCSX8QXOkq3ve1ZXO+dzfcr7nd54SEX4TmuY3pL0E8hLIi9Ts8z08Ojr3nN9iAgklzdl54iRBCBROcXx8kTgynBxvcuN3D\/Lk0TFtrNmiQrHnA++48qz3vu2KM0VYd\/jYhPrAJ77cHptenqrV0hNac9gH\/Wi73W5bLbz7rZdx9Wv2MDk+RV4UVBoNQhkofUHaV0fCcxPSu669dm0gL8ikWmGtGWy3O+dqFa48d9vQqx99\/MQF01NLGwb6BxJr4fYfPs7iYhcdPCHrLjsJY319tf22kd7T7XR+EkROAO5XbpG1tCBCCNKfZcXe8cmFd1SMvOmc7ZvM7p0jHBltc9UVF9PJFV\/6+r185ZYHGN52Jko8zeZS39z84nl7zt1x3puvPv89N912YEwr\/Q3vw80hhPt\/rSAhBKpJcvnWTYMfuuk7D72FIFz3qXdzbLTJR\/\/pLuKBjdz+4CS3PTDOTXc+QiWJ2LqxD18UlBFs3taHTgZptiPqfUMj3Ux9RIL+k1q9fn2z2fxXYPrFBxHB2uj9Q+v6\/nrThnjbKy85h0svOoPtm4dYLhUbRraw2HV85+FJlFZsP+cMNNDOcogNpi\/ionPWc8bGKnf++Dg7tqznlZeMMDDQtymtJJ8S1Ou8hL8KhAMvGohI0Cay\/1BvND6YJpWkXqtxzesu4Mb\/Psz9Nx1i64YGjeF1dLolmyINSqGCICFgfRUpPT4rObrgIPZ86M9ex3lnrCNNYWx6AQ3U+\/quHB2b+lpfLf3L0he3\/upBRFSSVv+5Uq38eb1SUY16leVOyT9+8yHufGQSSSyPtT1FJaVSq6KNQikFBIIP4DziPFFW0ml1mex45tqeTUMNjo3P8eRTTepVTSWJue\/A47sG+tMvXnjBrkQrfVPQYXUS6v8ColBKqXaWfyatpO+vVaqqUU1ZWMr47Lce4ZsPjlMdqFFppGSRIUpiImvQSvXGDYHECN55sszh05xKYnnv3nO45pLtPDOzxF987kfY4HnDq7bS6XaoN\/pR2g0rrT7\/zDMnl7NW985IB2A1DV9zzdpAQvDPwcha7fdFJnywWkl1f73Ccjfw8Rse5LYnptk0Moitppg0xiYRylq0VSilQQkEQYtQ1SK6k6si15SR5Ws\/HaUQGK4Y9l6+i6KbMT7f4a59T7E8d5wdm2NqtXRrrW4\/7Z0fVbgnRIUXZhHXnkQpCEFotctLa7X6RwcHBpO+WoX5VsGnbz7E3cfn2bx9iKiWYqopNo3RscVEEUor0KrnCOIpCw8aUqMRoxBtGG91mG3nvPW3d\/F7l2ymcCUHD0+ysNjmwANzHD4+yuzcAm97y+UXp\/XKJ4vW8p9ao3PU87uXej4Zf\/2X\/xMfAo1aXL3wZVu+UvroD\/c\/OsMr9uzglgcmuOngBBu3rcM2qkTV9LRFTGyJkghR+ufjBY+4gCtLQlmiypKaBM4aiPnkVbuppxGtlQ7dLMP7AudKHnjsaZqLy0xOT9NaaeGkIJLyXaEovhIQ+eyn\/nZtFvnYF+6m0y15+XnDr7\/u42988w23Psm\/33aYN77+YprKsmFzP1E1wVZibDUmqsSYNMEkEcYa0KBYDXYREecxRqtgFDnIpprh46\/doeqJoSwd1hisMRQltHPHzpF1bFhXYXhTnbt\/dJCJySZbhvs+stBc\/J4ry8k1i8ZaAoMN07hw99B7Dj05a2\/dd4zLf+tMrnrFDtZvqJNbgyQRNo2wadyLjzTCxhZtNFpptFYorUgiEyppJDqJeq4XW3X59n7VV4lwLpxORkortNYoFHnh6WYlWV5y7lkjWGOYXWjtiZJ0b5Skas0g3SzDqnD+xsHK74gyXHnpLqr9NbpeuOjMIX53zzCNaoSJLcZaTGTQ0erkFav3Xox4Ee0VykYaYy1RZHnZUK2X0f+XvysUIoJWGqM1BEjThN1nbqHV6pI5eZcytrpmkLN3btJFKVdNzXbivVfs5FWXbOPEbIcb95\/kwdFFFgpPmkRoazBWY6zBaIM+DcFqvzc7AaV1710HHJzrnF4V1LNgRAmIoFTvudYaVwaGhvqIraGbla\/RqB1rBumrJVsaib3yth88zZdufozLzh\/mrB2DLBWek8sZj8ys0CwDohRaK7QCo1atoBT6WXetFEYrdG+hR2mIrH7u4hYEEQheCNLrA6c\/iHeBXbtHWGq27A\/2PX75mtNvu1NcGLzsUTriq7cfYaG0GKu5+oJh\/uCKM5npeh5e6HKsK3R9oL66UD37657qqtVr9Q1io7nr5DIXDibh5Rsb2jlHQABBIygBQRCRU8sfPgTi2DI42GCpefjlawYps3y3c7I+rcY4rzg23uKP33Qer71ohJ3Dg73PGjzfG13mxqdXmCgDKgrE2vyCiNCnbO4EJQGNsJCV\/NfTTT1Sj9lQjdCiyfPAUidHGcEahQ+ChJ6FAPK8ZHjLRrZsXb99zSBTUwu7RKWxUoZaJeaho002PzzNta88g6IoUNqitWLvjn4u3lDjtrE2t8\/kOK9IIv2s4F31\/RAQ7xDvIQRSA\/vGFhmbX+GanQPUDDxxdJYfHjjBxTtqXLSzThIHfPCE4PG+FzvOOdrtzvo1g+RlWG8ji9IGUFRjQyO1dPKCOOoFLWhCEDZUI959dj\/dsMQtE13iJKJiNbHpZa3gheAd4jwSAoSeZkq14sh8m78fXUA6npUTc7Snltj\/03HeuXcrey9dj\/ehdwVPEMG7QNbN62sXjX5Fi7WI9OODkEQRl501QGyEbl4SiyKJY4zWeBdQGi5dFyMIjy2VLDrPYiYkBhIFwQckeCQ4vHeIc0jpSEQwSpN1utjS01+JaHtP4XvS3zmP8wHnHKherAQRvWaQUE5nSpZwJicrhxiuj7BlncV5hy\/l55kpijBGEzycP5Bw0VDKTNezWHoems+5Z7pDy3m0BMR7gu+5SnC9S7xAIYTlHApP8AGDZ\/+hCc7bZkjiQFmWlM5hjGFqYoaVpaV87SAhn1AevFtBqZj52SmeODbFzpF+NEJe9NKnCMRRhDWKVPf01daaZSuWc\/tTtieKv9s\/BsGjvcc7TyhKQubwWYlkjmxukWx2npAVhDLD5V2enmlx4GHHay\/bTlGWpy1SZCW+LBfXDCKBY6KlLd7V4jSQ5wXfvOMJ9py1iR3DgxRFcWrHSJBAbC3amOesH8ZoWq2M5swSqRKU94TCIXlJyD1SONxKl2xmFp93CWWJ+Jzgc5R3tDs5RVGSFwVBAqDIiwJt7PQLsEj5Mx30uEh5dnAFlUrg6IkZjpyYY9vGBi4EUD054UXwIWC1xhiDUQprNHcdnubz9xxDZyUKIZSBUPYAxHlCt6RoNnF5hlVQrVraKzlOhCjSbByq0O50KZ0DFGXpmJqaR+DwmkGMsY8GCQeCL84WlyG+ACLuO3iSi8\/ZSH+9QhaEEHoZxTuPtbonU7QmNoZ7j0wxNr7IhmqM855QBsR5KAOhdD2I9gpKAt47Mi8ECXgX2DbcYOf2AZbaHXwIaK1YWlrBRhak+Mnas1ZwLRG5W7x7p\/cZynVIk4Tv7z+OF817rr2ATevr5CEQQoTXntJprLGksSEoj1vJ0Z0cJwFxq\/v2AFJ6yuVFytZyb30JHgm+l81Cz1V3bu1DESjyAq2htZLxzMlpnA8zutL3yJq1lpICI+V9oWjPBl8QXAcJXbTk3PHjo9xx33FEHN08J8tzsrwgywoIJZ0s4+v7jrPv0AQV73HtHN8tkMwTugVFc4FyebGXxcSDBE6JK1GgDDRXurS7GS54tNaMjs8xt7DM0nLrWyLMrtkiShlQ8gzivhpc8aFQZnizglWW1Gh++vg4b7hiB2kS4XwgspZqGrHv0Czff3iGnxxZIAhUYk0vnAx4T7GySJmt9MYIAUVACIgKBNWzjIhneaVLN8vxzrO80ub4yRlOjk64bH7sG6EsyzWDaG0BCh\/CjS5vv01ruzmYDkFbEMXs3ALziysMDVTRyuFtRBwJ37nvGX5wcIb+WkwUWUoXUNogoUPZXiSU2bMEbwB6VhHxq0AeE2nQUDqH4JlvtphdyOm285vLlYUD4oq1Fx867cXVNOwfUjb9N2OTv1FaoTCIh9YSjE7O0VfbjHMFA32KsekuE9OLVG1Ai8M7UFrjshY+W0a862lyAcEhEnpVllV5rNCgVneYRoN4jo8ucf+jC3TbxYRV4QtOmxyl1w4S\/CnrKe87zeuVhFcrM3yViEYHYcWXHH5qgl3bhxARxmcLbrrrGCdGF4jihOAEKPHFCr7soJRCUIgLQOjt6bXuSWP9XKGPBLSJuPfRJU6Md2h1Db7sfM5Lfn+0buR0PK0ta52i7m3VZspO8xMmqvyHTWW3IIgrmZiepZN1cWXg8afmeezIBL4EqwNlURKKDiIepQ1B9SaI0ihrfg5gev1ToAjg4ampgMs1hDq+eeSGfPnp6021f3XHpdYOctoPFUhwEMJ9WWvqw6nwRVthOOA59MgRXnHRDvobdb59x0Hml0rq9Qr5coEEhzYWpTTBF70al7Eos1p91Aqs6YEoiyjTS6C+Fx\/agLWK7twTd2ULRz+m4yh71uzWDlK2pn6hbCriblW9Ea8zSWNkbnqW7975AG\/5\/SvYOGiYHB8j8xHKxChtkeAQQFmDMRGo0JvsqiVEW5SOQEUoFSGsQolBjCZfPnJX0TrxXqWjCQi\/ZBH7eQJKKYvP298ubXM5iPucjuoXPv7okwytS+iraiLpIC5FCChvwGiiJAGjCMGhTG\/VRxvQFqViRKUok4CJCSZC4hrBefLxR25wnZMfVTpe8znJCzsfURqUvtt1l\/5Il9knlK28\/d59D9I\/2I9WAe8ygit6ApIERW9j5kShYbUebIEYpSpgKoS0BtUGqjGAa05N5RMHPlPOP\/0v2jTyF\/WgR6EQpX7m85X3aV\/ekRXZh\/MsvzipVNHWYuIY5xxaCWXZqx+b2BKCweURVmKgjsR9qL4BosF1BAvFxGPfkPbKdeXcU\/uVTn9dZ4gKlGoH774quHs2rq9fneWdtxeFeU21Fsfbt2yg3S2YWchRcYwyhjS2NBqWjq+QNCxxwyN6diZ65vu3LPbt\/np7Zemg8WpZ2WQtIfErPtXtlezHrOHL2vCt9uzkSL0irxqsb7pkpdU5o56Y9VhbGxoweudIcJFeWGqtzEy6vH20ODl\/f27qDymTzKqklWFiCL\/8wa566U81L4G8BPL\/A+R\/BgAzCInEE2+\/LgAAAABJRU5ErkJggg==' alt='img'\/><\/div><div class='stb-caption-content'><\/div><div class='stb-tool'><\/div><\/div><div class='stb-content'><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def initGui(self):\n    self.action = QAction(\n        QIcon(':\/plugins\/MonPremierPlugin\/icon.png'),\n        'Mon premier plugin',\n        self.iface.mainWindow()\n    )\n    self.action.triggered.connect(self.run)\n    self.iface.addToolBarIcon(self.action)\n<\/code><\/pre>\n\n\n<p><\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">M\u00eame sans comprendre chaque ligne, retenez que :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>une <strong>action<\/strong> est cr\u00e9\u00e9e,<\/li>\n\n\n\n<li>elle est reli\u00e9e \u00e0 une m\u00e9thode (<code>run<\/code>),<\/li>\n\n\n\n<li>elle est ajout\u00e9e \u00e0 l\u2019interface de QGIS.<\/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=\"La_methode_run_quand_on_clique_sur_le_bouton\"><\/span>La m\u00e9thode <code>run()<\/code> : quand on clique sur le bouton<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La m\u00e9thode <code>run()<\/code> est appel\u00e9e lorsque l\u2019utilisateur clique sur le bouton du plugin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans le template g\u00e9n\u00e9r\u00e9, elle sert principalement \u00e0 <strong>afficher une fen\u00eatre<\/strong>.<\/p>\n\n\n<div class='stb-container stb-style-black'><div class='stb-caption'><div class='stb-logo'><img class='stb-logo__image' src='data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN\/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz\/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH\/w\/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA\/g88wAAKCRFRHgg\/P9eM4Ors7ONo62Dl8t6r8G\/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt\/qIl7gRoXgugdfeLZrIPQLUAoOnaV\/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl\/AV\/1s+X48\/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H\/LcL\/\/wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93\/+8\/\/UegJQCAZkmScQAAXkQkLlTKsz\/HCAAARKCBKrBBG\/TBGCzABhzBBdzBC\/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD\/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q\/pH5Z\/YkGWcNMw09DpFGgsV\/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY\/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4\/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L\/1U\/W36p\/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N\/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26\/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE\/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV\/MN8C3yLfLT8Nvnl+F30N\/I\/9k\/3r\/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt\/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi\/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a\/zYnKOZarnivN7cyzytuQN5zvn\/\/tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO\/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3\/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA\/0HIw6217nU1R3SPVRSj9Yr60cOxx++\/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3\/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX\/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8\/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb\/1tWeOT3dvfN6b\/fF9\/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR\/cGhYPP\/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF\/6i\/suuFxYvfvjV69fO0ZjRoZfyl5O\/bXyl\/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o\/2j5sfVT0Kf7kxmTk\/8EA5jz\/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5\/wAAgOkAAHUwAADqYAAAOpgAABdvkl\/FRgAAD59JREFUeNrsmnmMXVd9xz9nucvbZvF4GdtjO46dhcRZSGmCSIAExaUFQtoiUVSgFFQBFaISRaBSoH9QVaUUAU2VSrSVoGELSgRpGshCA8GQYGfBcVZsx47j2dc3M2\/ee3c55\/z6xxubpOSPCSX8QXOkq3ve1ZXO+dzfcr7nd54SEX4TmuY3pL0E8hLIi9Ts8z08Ojr3nN9iAgklzdl54iRBCBROcXx8kTgynBxvcuN3D\/Lk0TFtrNmiQrHnA++48qz3vu2KM0VYd\/jYhPrAJ77cHptenqrV0hNac9gH\/Wi73W5bLbz7rZdx9Wv2MDk+RV4UVBoNQhkofUHaV0fCcxPSu669dm0gL8ikWmGtGWy3O+dqFa48d9vQqx99\/MQF01NLGwb6BxJr4fYfPs7iYhcdPCHrLjsJY319tf22kd7T7XR+EkROAO5XbpG1tCBCCNKfZcXe8cmFd1SMvOmc7ZvM7p0jHBltc9UVF9PJFV\/6+r185ZYHGN52Jko8zeZS39z84nl7zt1x3puvPv89N912YEwr\/Q3vw80hhPt\/rSAhBKpJcvnWTYMfuuk7D72FIFz3qXdzbLTJR\/\/pLuKBjdz+4CS3PTDOTXc+QiWJ2LqxD18UlBFs3taHTgZptiPqfUMj3Ux9RIL+k1q9fn2z2fxXYPrFBxHB2uj9Q+v6\/nrThnjbKy85h0svOoPtm4dYLhUbRraw2HV85+FJlFZsP+cMNNDOcogNpi\/ionPWc8bGKnf++Dg7tqznlZeMMDDQtymtJJ8S1Ou8hL8KhAMvGohI0Cay\/1BvND6YJpWkXqtxzesu4Mb\/Psz9Nx1i64YGjeF1dLolmyINSqGCICFgfRUpPT4rObrgIPZ86M9ex3lnrCNNYWx6AQ3U+\/quHB2b+lpfLf3L0he3\/upBRFSSVv+5Uq38eb1SUY16leVOyT9+8yHufGQSSSyPtT1FJaVSq6KNQikFBIIP4DziPFFW0ml1mex45tqeTUMNjo3P8eRTTepVTSWJue\/A47sG+tMvXnjBrkQrfVPQYXUS6v8ColBKqXaWfyatpO+vVaqqUU1ZWMr47Lce4ZsPjlMdqFFppGSRIUpiImvQSvXGDYHECN55sszh05xKYnnv3nO45pLtPDOzxF987kfY4HnDq7bS6XaoN\/pR2g0rrT7\/zDMnl7NW985IB2A1DV9zzdpAQvDPwcha7fdFJnywWkl1f73Ccjfw8Rse5LYnptk0Moitppg0xiYRylq0VSilQQkEQYtQ1SK6k6si15SR5Ws\/HaUQGK4Y9l6+i6KbMT7f4a59T7E8d5wdm2NqtXRrrW4\/7Z0fVbgnRIUXZhHXnkQpCEFotctLa7X6RwcHBpO+WoX5VsGnbz7E3cfn2bx9iKiWYqopNo3RscVEEUor0KrnCOIpCw8aUqMRoxBtGG91mG3nvPW3d\/F7l2ymcCUHD0+ysNjmwANzHD4+yuzcAm97y+UXp\/XKJ4vW8p9ao3PU87uXej4Zf\/2X\/xMfAo1aXL3wZVu+UvroD\/c\/OsMr9uzglgcmuOngBBu3rcM2qkTV9LRFTGyJkghR+ufjBY+4gCtLQlmiypKaBM4aiPnkVbuppxGtlQ7dLMP7AudKHnjsaZqLy0xOT9NaaeGkIJLyXaEovhIQ+eyn\/nZtFvnYF+6m0y15+XnDr7\/u42988w23Psm\/33aYN77+YprKsmFzP1E1wVZibDUmqsSYNMEkEcYa0KBYDXYREecxRqtgFDnIpprh46\/doeqJoSwd1hisMRQltHPHzpF1bFhXYXhTnbt\/dJCJySZbhvs+stBc\/J4ry8k1i8ZaAoMN07hw99B7Dj05a2\/dd4zLf+tMrnrFDtZvqJNbgyQRNo2wadyLjzTCxhZtNFpptFYorUgiEyppJDqJeq4XW3X59n7VV4lwLpxORkortNYoFHnh6WYlWV5y7lkjWGOYXWjtiZJ0b5Skas0g3SzDqnD+xsHK74gyXHnpLqr9NbpeuOjMIX53zzCNaoSJLcZaTGTQ0erkFav3Xox4Ee0VykYaYy1RZHnZUK2X0f+XvysUIoJWGqM1BEjThN1nbqHV6pI5eZcytrpmkLN3btJFKVdNzXbivVfs5FWXbOPEbIcb95\/kwdFFFgpPmkRoazBWY6zBaIM+DcFqvzc7AaV1710HHJzrnF4V1LNgRAmIoFTvudYaVwaGhvqIraGbla\/RqB1rBumrJVsaib3yth88zZdufozLzh\/mrB2DLBWek8sZj8ys0CwDohRaK7QCo1atoBT6WXetFEYrdG+hR2mIrH7u4hYEEQheCNLrA6c\/iHeBXbtHWGq27A\/2PX75mtNvu1NcGLzsUTriq7cfYaG0GKu5+oJh\/uCKM5npeh5e6HKsK3R9oL66UD37657qqtVr9Q1io7nr5DIXDibh5Rsb2jlHQABBIygBQRCRU8sfPgTi2DI42GCpefjlawYps3y3c7I+rcY4rzg23uKP33Qer71ohJ3Dg73PGjzfG13mxqdXmCgDKgrE2vyCiNCnbO4EJQGNsJCV\/NfTTT1Sj9lQjdCiyfPAUidHGcEahQ+ChJ6FAPK8ZHjLRrZsXb99zSBTUwu7RKWxUoZaJeaho002PzzNta88g6IoUNqitWLvjn4u3lDjtrE2t8\/kOK9IIv2s4F31\/RAQ7xDvIQRSA\/vGFhmbX+GanQPUDDxxdJYfHjjBxTtqXLSzThIHfPCE4PG+FzvOOdrtzvo1g+RlWG8ji9IGUFRjQyO1dPKCOOoFLWhCEDZUI959dj\/dsMQtE13iJKJiNbHpZa3gheAd4jwSAoSeZkq14sh8m78fXUA6npUTc7Snltj\/03HeuXcrey9dj\/ehdwVPEMG7QNbN62sXjX5Fi7WI9OODkEQRl501QGyEbl4SiyKJY4zWeBdQGi5dFyMIjy2VLDrPYiYkBhIFwQckeCQ4vHeIc0jpSEQwSpN1utjS01+JaHtP4XvS3zmP8wHnHKherAQRvWaQUE5nSpZwJicrhxiuj7BlncV5hy\/l55kpijBGEzycP5Bw0VDKTNezWHoems+5Z7pDy3m0BMR7gu+5SnC9S7xAIYTlHApP8AGDZ\/+hCc7bZkjiQFmWlM5hjGFqYoaVpaV87SAhn1AevFtBqZj52SmeODbFzpF+NEJe9NKnCMRRhDWKVPf01daaZSuWc\/tTtieKv9s\/BsGjvcc7TyhKQubwWYlkjmxukWx2npAVhDLD5V2enmlx4GHHay\/bTlGWpy1SZCW+LBfXDCKBY6KlLd7V4jSQ5wXfvOMJ9py1iR3DgxRFcWrHSJBAbC3amOesH8ZoWq2M5swSqRKU94TCIXlJyD1SONxKl2xmFp93CWWJ+Jzgc5R3tDs5RVGSFwVBAqDIiwJt7PQLsEj5Mx30uEh5dnAFlUrg6IkZjpyYY9vGBi4EUD054UXwIWC1xhiDUQprNHcdnubz9xxDZyUKIZSBUPYAxHlCt6RoNnF5hlVQrVraKzlOhCjSbByq0O50KZ0DFGXpmJqaR+DwmkGMsY8GCQeCL84WlyG+ACLuO3iSi8\/ZSH+9QhaEEHoZxTuPtbonU7QmNoZ7j0wxNr7IhmqM855QBsR5KAOhdD2I9gpKAt47Mi8ECXgX2DbcYOf2AZbaHXwIaK1YWlrBRhak+Mnas1ZwLRG5W7x7p\/cZynVIk4Tv7z+OF817rr2ATevr5CEQQoTXntJprLGksSEoj1vJ0Z0cJwFxq\/v2AFJ6yuVFytZyb30JHgm+l81Cz1V3bu1DESjyAq2htZLxzMlpnA8zutL3yJq1lpICI+V9oWjPBl8QXAcJXbTk3PHjo9xx33FEHN08J8tzsrwgywoIJZ0s4+v7jrPv0AQV73HtHN8tkMwTugVFc4FyebGXxcSDBE6JK1GgDDRXurS7GS54tNaMjs8xt7DM0nLrWyLMrtkiShlQ8gzivhpc8aFQZnizglWW1Gh++vg4b7hiB2kS4XwgspZqGrHv0Czff3iGnxxZIAhUYk0vnAx4T7GySJmt9MYIAUVACIgKBNWzjIhneaVLN8vxzrO80ub4yRlOjk64bH7sG6EsyzWDaG0BCh\/CjS5vv01ruzmYDkFbEMXs3ALziysMDVTRyuFtRBwJ37nvGX5wcIb+WkwUWUoXUNogoUPZXiSU2bMEbwB6VhHxq0AeE2nQUDqH4JlvtphdyOm285vLlYUD4oq1Fx867cXVNOwfUjb9N2OTv1FaoTCIh9YSjE7O0VfbjHMFA32KsekuE9OLVG1Ai8M7UFrjshY+W0a862lyAcEhEnpVllV5rNCgVneYRoN4jo8ucf+jC3TbxYRV4QtOmxyl1w4S\/CnrKe87zeuVhFcrM3yViEYHYcWXHH5qgl3bhxARxmcLbrrrGCdGF4jihOAEKPHFCr7soJRCUIgLQOjt6bXuSWP9XKGPBLSJuPfRJU6Md2h1Db7sfM5Lfn+0buR0PK0ta52i7m3VZspO8xMmqvyHTWW3IIgrmZiepZN1cWXg8afmeezIBL4EqwNlURKKDiIepQ1B9SaI0ihrfg5gev1ToAjg4ampgMs1hDq+eeSGfPnp6021f3XHpdYOctoPFUhwEMJ9WWvqw6nwRVthOOA59MgRXnHRDvobdb59x0Hml0rq9Qr5coEEhzYWpTTBF70al7Eos1p91Aqs6YEoiyjTS6C+Fx\/agLWK7twTd2ULRz+m4yh71uzWDlK2pn6hbCriblW9Ea8zSWNkbnqW7975AG\/5\/SvYOGiYHB8j8xHKxChtkeAQQFmDMRGo0JvsqiVEW5SOQEUoFSGsQolBjCZfPnJX0TrxXqWjCQi\/ZBH7eQJKKYvP298ubXM5iPucjuoXPv7okwytS+iraiLpIC5FCChvwGiiJAGjCMGhTG\/VRxvQFqViRKUok4CJCSZC4hrBefLxR25wnZMfVTpe8znJCzsfURqUvtt1l\/5Il9knlK28\/d59D9I\/2I9WAe8ygit6ApIERW9j5kShYbUebIEYpSpgKoS0BtUGqjGAa05N5RMHPlPOP\/0v2jTyF\/WgR6EQpX7m85X3aV\/ekRXZh\/MsvzipVNHWYuIY5xxaCWXZqx+b2BKCweURVmKgjsR9qL4BosF1BAvFxGPfkPbKdeXcU\/uVTn9dZ4gKlGoH774quHs2rq9fneWdtxeFeU21Fsfbt2yg3S2YWchRcYwyhjS2NBqWjq+QNCxxwyN6diZ65vu3LPbt\/np7Zemg8WpZ2WQtIfErPtXtlezHrOHL2vCt9uzkSL0irxqsb7pkpdU5o56Y9VhbGxoweudIcJFeWGqtzEy6vH20ODl\/f27qDymTzKqklWFiCL\/8wa566U81L4G8BPL\/A+R\/BgAzCInEE2+\/LgAAAABJRU5ErkJggg==' alt='img'\/><\/div><div class='stb-caption-content'><\/div><div class='stb-tool'><\/div><\/div><div class='stb-content'><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def run(self):\n    self.dlg.show()\n<\/code><\/pre>\n\n\n<p><\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">&#x1f449; \u00c0 ce stade, le plugin ne fait qu\u2019une chose : ouvrir un dialogue.<\/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=\"%F0%9F%93%A6_Ce_que_fait_vraiment_un_bouton_dans_QGIS\"><\/span>&#x1f4e6; Ce que fait vraiment un bouton dans QGIS<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Lorsqu\u2019on clique sur un bouton dans QGIS, il ne se passe rien de \u00ab magique \u00bb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un bouton de plugin est simplement un <strong>d\u00e9clencheur<\/strong> : il appelle une fonction Python pr\u00e9cise.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Concr\u00e8tement, le fonctionnement est toujours le m\u00eame :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>le plugin cr\u00e9e une <strong>action<\/strong> (<code>QAction<\/code>),<\/li>\n\n\n\n<li>cette action est associ\u00e9e \u00e0 une fonction (par exemple <code>run()<\/code>),<\/li>\n\n\n\n<li>lorsque l\u2019utilisateur clique sur le bouton, <strong>QGIS ex\u00e9cute cette fonction<\/strong>.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Dans notre cas, la fonction <code>run()<\/code> se contente d\u2019afficher une fen\u00eatre. Mais plus tard, cette m\u00eame fonction pourra :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>lire des param\u00e8tres saisis par l\u2019utilisateur,<\/li>\n\n\n\n<li>analyser des couches,<\/li>\n\n\n\n<li>lancer des traitements,<\/li>\n\n\n\n<li>produire des r\u00e9sultats.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">&#x1f449; <strong>Un bouton QGIS ne fait qu\u2019une chose : lancer du code Python.<\/strong><br>Toute la puissance du plugin se trouve dans ce code.<\/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=\"Comprendre_la_fenetre_dialog\"><\/span>Comprendre la fen\u00eatre (<code>dialog<\/code>)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La fen\u00eatre affich\u00e9e est d\u00e9finie dans un fichier <code>.ui<\/code>, cr\u00e9\u00e9 avec Qt Designer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ce fichier est ensuite charg\u00e9 en Python, ce qui permet :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>d\u2019afficher la fen\u00eatre,<\/li>\n\n\n\n<li>de r\u00e9cup\u00e9rer les valeurs saisies par l\u2019utilisateur,<\/li>\n\n\n\n<li>de connecter des boutons \u00e0 du code.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Pour l\u2019instant, nous allons simplement modifier le contenu visuel.<\/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=\"Modifier_le_texte_de_la_fenetre\"><\/span>Modifier le texte de la fen\u00eatre<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ouvrez le fichier <code>.ui<\/code> avec <strong>Qt Designer<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Essayez par exemple :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>de changer le titre de la fen\u00eatre,<\/li>\n\n\n\n<li>de modifier un label,<\/li>\n\n\n\n<li>d\u2019ajouter un bouton.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Enregistrez le fichier, rechargez le plugin dans QGIS, puis cliquez sur le bouton.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#x1f449; Vous venez de modifier l\u2019interface d\u2019un plugin QGIS sans \u00e9crire de code Python.<\/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=\"Tester_et_recharger_le_plugin\"><\/span>Tester et recharger le plugin<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c0 chaque modification du code ou de l\u2019interface :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>D\u00e9sactivez le plugin dans le gestionnaire d\u2019extensions<\/li>\n\n\n\n<li>R\u00e9activez-le<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Ou utilisez l\u2019option <strong>Recharger le plugin<\/strong> si vous avez install\u00e9 l\u2019extension d\u00e9di\u00e9e.<\/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=\"Erreurs_frequentes_a_ce_stade\"><\/span>Erreurs fr\u00e9quentes \u00e0 ce stade<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>rien ne se passe au clic \u2192 m\u00e9thode <code>run()<\/code> non connect\u00e9e<\/li>\n\n\n\n<li>erreur au chargement \u2192 faute de casse dans les noms<\/li>\n\n\n\n<li>fen\u00eatre vide \u2192 fichier <code>.ui<\/code> mal r\u00e9f\u00e9renc\u00e9<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ces probl\u00e8mes sont normaux et font partie du processus.<\/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=\"Ce_que_vous_avez_appris\"><\/span>Ce que vous avez appris<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c0 l\u2019issue de cet article, vous savez :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>o\u00f9 est cr\u00e9\u00e9 le bouton d\u2019un plugin QGIS,<\/li>\n\n\n\n<li>comment une action est connect\u00e9e \u00e0 du code,<\/li>\n\n\n\n<li>comment afficher et modifier une fen\u00eatre.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Vous avez d\u00e9sormais <strong>la brique essentielle de tout plugin QGIS interactif<\/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=\"Et_dans_le_prochain_article\"><\/span>Et dans le prochain article ?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dans l\u2019article suivant, nous verrons :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>comment r\u00e9cup\u00e9rer des valeurs saisies dans la fen\u00eatre,<\/li>\n\n\n\n<li>comment interagir avec les couches QGIS,<\/li>\n\n\n\n<li>comment structurer le code pour aller plus loin.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">&#x1f449; <em>\u00c0 partir d\u2019ici, votre plugin commence vraiment \u00e0 devenir utile.<\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n","protected":false},"excerpt":{"rendered":"<p>Ajouter un bouton dans l\u2019interface de QGIS est souvent la premi\u00e8re \u00e9tape concr\u00e8te lorsqu\u2019on d\u00e9veloppe un plugin. C\u2019est ce qui transforme un simple script Python en outil r\u00e9ellement utilisable par l\u2019utilisateur. Dans ce troisi\u00e8me article du&hellip;<\/p>\n","protected":false},"author":1,"featured_media":16327,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"give_campaign_id":0,"_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_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1945,62],"tags":[176,4202,279,4204,58],"class_list":["post-16308","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pluigin","category-qgis-2","tag-bouton","tag-dialogue","tag-plugin","tag-plugin-builder-fr","tag-qgis"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2026\/01\/pluginsQGIS3.jpg?fit=409%2C307&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p6XU0A-4f2","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/16308","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=16308"}],"version-history":[{"count":0,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/16308\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media\/16327"}],"wp:attachment":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media?parent=16308"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/categories?post=16308"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/tags?post=16308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}