﻿{"id":16387,"date":"2026-06-11T12:00:00","date_gmt":"2026-06-11T10:00:00","guid":{"rendered":"https:\/\/www.sigterritoires.fr\/?p=16387"},"modified":"2026-06-11T11:35:34","modified_gmt":"2026-06-11T09:35:34","slug":"desenvolver-plugin-qgis-adicionar-botao-janela","status":"publish","type":"post","link":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/","title":{"rendered":"[PT]Desenvolver um Plugin QGIS: Adicionar um Bot\u00e3o e uma Janela"},"content":{"rendered":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">Adicionar um bot\u00e3o \u00e0 interface do QGIS costuma ser o primeiro passo concreto no desenvolvimento de um plugin. \u00c9 isso que transforma um simples script em Python em uma ferramenta realmente utiliz\u00e1vel pelo usu\u00e1rio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Neste terceiro artigo do tutorial, veremos como adicionar um bot\u00e3o e exibir uma janela em um plugin QGIS, com base no c\u00f3digo gerado pelo Plugin Builder. Vamos dedicar um tempo para compreender os elementos essenciais: o m\u00e9todo <code>initGui()<\/code>, as a\u00e7\u00f5es (<code>QAction<\/code>) e o acionamento do di\u00e1logo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este tutorial \u00e9 voltado para iniciantes no desenvolvimento de plugins QGIS que desejam entender como interagir com a interface do QGIS antes de avan\u00e7ar para a l\u00f3gica de neg\u00f3cio.<\/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\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#Adicionar_um_botao_e_exibir_uma_janela_no_QGIS\" >Adicionar um bot\u00e3o e exibir uma janela no 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\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#Lembrete_o_plugin_gerado_pelo_Plugin_Builder\" >Lembrete: o plugin gerado pelo 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\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#O_arquivo_principal_do_plugin\" >O arquivo principal do 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\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#O_metodo_initGui_ponto_de_entrada_visual\" >O m\u00e9todo initGui(): ponto de entrada visual<\/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\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#O_metodo_run_quando_o_botao_e_clicado\" >O m\u00e9todo run(): quando o bot\u00e3o \u00e9 clicado<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#%F0%9F%93%A6_O_que_um_botao_faz_de_verdade_no_QGIS\" >&#x1f4e6; O que um bot\u00e3o faz de verdade no QGIS<\/a><\/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\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#Entendendo_a_janela_dialogo\" >Entendendo a janela (di\u00e1logo)<\/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\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#Modificar_o_texto_da_janela\" >Modificar o texto da janela<\/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\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#Testar_e_recarregar_o_plugin\" >Testar e recarregar o 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\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#Erros_frequentes_nesta_etapa\" >Erros frequentes nesta etapa<\/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\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#O_que_voce_aprendeu\" >O que voc\u00ea aprendeu<\/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\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#E_no_proximo_artigo\" >E no pr\u00f3ximo artigo?<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Adicionar_um_botao_e_exibir_uma_janela_no_QGIS\"><\/span>Adicionar um bot\u00e3o e exibir uma janela no QGIS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nos dois primeiros artigos, estabelecemos as bases: entender o que \u00e9 um plugin QGIS e criar um plugin vazio usando o Plugin Builder. Agora \u00e9 hora de dar um comportamento vis\u00edvel ao nosso plugin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Neste artigo, vamos aprender a:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>adicionar um bot\u00e3o \u00e0 interface do QGIS,<\/li>\n\n\n\n<li>compreender o c\u00f3digo gerado pelo Plugin Builder,<\/li>\n\n\n\n<li>exibir uma janela (di\u00e1logo) simples.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">O objetivo ainda n\u00e3o \u00e9 fazer algo complexo, mas entender o mecanismo fundamental de qualquer 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=\"Lembrete_o_plugin_gerado_pelo_Plugin_Builder\"><\/span>Lembrete: o plugin gerado pelo Plugin Builder<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Quando escolhemos o template <strong>Tool button with dialog<\/strong>, o Plugin Builder j\u00e1 preparou muita coisa para n\u00f3s:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>um bot\u00e3o na barra de ferramentas,<\/li>\n\n\n\n<li>um item de menu no QGIS,<\/li>\n\n\n\n<li>uma janela gr\u00e1fica associada.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Mesmo que tudo isso j\u00e1 funcione, \u00e9 essencial entender como esses elementos est\u00e3o conectados.<\/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=\"O_arquivo_principal_do_plugin\"><\/span>O arquivo principal do plugin<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Abra o arquivo Python principal do seu plugin (por exemplo <code>mon_premier_plugin.py<\/code>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voc\u00ea encontrar\u00e1 uma classe principal com o nome do plugin. \u00c9 ela que controla todo o comportamento.<\/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\n<p class=\"wp-block-paragraph\">&#x1f449; <code>iface<\/code> \u00e9 o objeto que permite ao plugin dialogar com o QGIS (menus, camadas, mensagens\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=\"O_metodo_initGui_ponto_de_entrada_visual\"><\/span>O m\u00e9todo <code>initGui()<\/code>: ponto de entrada visual<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O m\u00e9todo <code>initGui()<\/code> \u00e9 chamado automaticamente quando o plugin \u00e9 ativado no QGIS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9 aqui que s\u00e3o definidos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>o bot\u00e3o na barra de ferramentas,<\/li>\n\n\n\n<li>a entrada no menu,<\/li>\n\n\n\n<li>a a\u00e7\u00e3o associada.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Exemplo t\u00edpico:<\/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        'Meu primeiro 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\n<p class=\"wp-block-paragraph\">Mesmo sem entender cada linha em detalhe, guarde o essencial:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>uma a\u00e7\u00e3o \u00e9 criada,<\/li>\n\n\n\n<li>ela \u00e9 conectada a um m\u00e9todo (<code>run<\/code>),<\/li>\n\n\n\n<li>ela \u00e9 adicionada \u00e0 interface do 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=\"O_metodo_run_quando_o_botao_e_clicado\"><\/span>O m\u00e9todo <code>run()<\/code>: quando o bot\u00e3o \u00e9 clicado<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O m\u00e9todo <code>run()<\/code> \u00e9 chamado quando o usu\u00e1rio clica no bot\u00e3o do plugin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No template gerado, ele serve principalmente para exibir uma janela.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def run(self):\n    self.dlg.show()\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">&#x1f449; Neste est\u00e1gio, o plugin faz apenas uma coisa: abrir um di\u00e1logo.<\/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=\"%F0%9F%93%A6_O_que_um_botao_faz_de_verdade_no_QGIS\"><\/span>&#x1f4e6; O que um bot\u00e3o faz de verdade no QGIS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Quando clicamos em um bot\u00e3o no QGIS, nada \u201cm\u00e1gico\u201d acontece.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Um bot\u00e3o de plugin \u00e9 simplesmente um gatilho: ele chama uma fun\u00e7\u00e3o Python espec\u00edfica.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Concretamente, o funcionamento \u00e9 sempre o mesmo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>o plugin cria uma a\u00e7\u00e3o (<code>QAction<\/code>),<\/li>\n\n\n\n<li>essa a\u00e7\u00e3o \u00e9 associada a uma fun\u00e7\u00e3o (por exemplo <code>run()<\/code>),<\/li>\n\n\n\n<li>quando o usu\u00e1rio clica no bot\u00e3o, o QGIS executa essa fun\u00e7\u00e3o.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">No nosso caso, a fun\u00e7\u00e3o <code>run()<\/code> apenas exibe uma janela. Mais adiante, essa mesma fun\u00e7\u00e3o poder\u00e1:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ler par\u00e2metros informados pelo usu\u00e1rio,<\/li>\n\n\n\n<li>analisar camadas,<\/li>\n\n\n\n<li>executar processamentos,<\/li>\n\n\n\n<li>produzir resultados.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">&#x1f449; Um bot\u00e3o no QGIS faz apenas uma coisa: executar c\u00f3digo Python.<br>Todo o poder do plugin est\u00e1 nesse c\u00f3digo.<\/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=\"Entendendo_a_janela_dialogo\"><\/span>Entendendo a janela (di\u00e1logo)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A janela exibida \u00e9 definida em um arquivo <code>.ui<\/code>, criado com o Qt Designer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esse arquivo \u00e9 ent\u00e3o carregado em Python, permitindo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>exibir a janela,<\/li>\n\n\n\n<li>recuperar valores informados pelo usu\u00e1rio,<\/li>\n\n\n\n<li>conectar bot\u00f5es a c\u00f3digo.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Por enquanto, vamos apenas modificar o conte\u00fado visual.<\/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=\"Modificar_o_texto_da_janela\"><\/span>Modificar o texto da janela<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Abra o arquivo <code>.ui<\/code> no Qt Designer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Experimente, por exemplo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>mudar o t\u00edtulo da janela,<\/li>\n\n\n\n<li>alterar um r\u00f3tulo (label),<\/li>\n\n\n\n<li>adicionar um bot\u00e3o.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Salve o arquivo, recarregue o plugin no QGIS e clique no bot\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#x1f449; Voc\u00ea acabou de modificar a interface de um plugin QGIS sem escrever c\u00f3digo 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=\"Testar_e_recarregar_o_plugin\"><\/span>Testar e recarregar o plugin<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A cada modifica\u00e7\u00e3o no c\u00f3digo ou na interface:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>desative o plugin no gerenciador de extens\u00f5es,<\/li>\n\n\n\n<li>reative-o,<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">ou utilize a op\u00e7\u00e3o <strong>Recarregar plugin<\/strong>, se tiver instalado a extens\u00e3o apropriada.<\/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=\"Erros_frequentes_nesta_etapa\"><\/span>Erros frequentes nesta etapa<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>nada acontece ao clicar \u2192 m\u00e9todo <code>run()<\/code> n\u00e3o conectado,<\/li>\n\n\n\n<li>erro ao carregar \u2192 diferen\u00e7a de mai\u00fasculas\/min\u00fasculas nos nomes,<\/li>\n\n\n\n<li>janela vazia \u2192 arquivo <code>.ui<\/code> mal referenciado.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Esses problemas s\u00e3o normais e fazem parte do aprendizado.<\/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=\"O_que_voce_aprendeu\"><\/span>O que voc\u00ea aprendeu<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ao final deste artigo, voc\u00ea sabe:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>onde o bot\u00e3o de um plugin QGIS \u00e9 criado,<\/li>\n\n\n\n<li>como uma a\u00e7\u00e3o \u00e9 conectada a c\u00f3digo,<\/li>\n\n\n\n<li>como exibir e modificar uma janela.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Agora voc\u00ea possui o elemento essencial de qualquer plugin QGIS interativo.<\/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=\"E_no_proximo_artigo\"><\/span>E no pr\u00f3ximo artigo?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">No pr\u00f3ximo artigo, veremos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>como recuperar valores digitados na janela,<\/li>\n\n\n\n<li>como interagir com camadas do QGIS,<\/li>\n\n\n\n<li>como estruturar o c\u00f3digo para ir mais longe.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">&#x1f449; A partir daqui, seu plugin come\u00e7a a se tornar realmente \u00fatil.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n","protected":false},"excerpt":{"rendered":"<p>Adicionar um bot\u00e3o \u00e0 interface do QGIS costuma ser o primeiro passo concreto no desenvolvimento de um plugin. \u00c9 isso que transforma um simples script em Python em uma ferramenta realmente utiliz\u00e1vel pelo usu\u00e1rio. Neste terceiro&hellip;<\/p>\n","protected":false},"author":1,"featured_media":16327,"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,"_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":[3418,2134],"tags":[4214,4216,4652,4101,4218],"class_list":["post-16387","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pluigin-pt","category-qgis","tag-botao-plugin-qgis","tag-janela-plugin-qgis","tag-plugin-builder-qgis-pt","tag-plugin-qgis-python","tag-pyqgis-tutorial"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"Adicionar um bot\u00e3o \u00e0 interface do QGIS costuma ser o primeiro passo concreto no desenvolvimento de um plugin. \u00c9 isso que transforma um simples script em Python em uma ferramenta realmente utiliz\u00e1vel pelo usu\u00e1rio. Neste terceiro artigo do tutorial, veremos como adicionar um bot\u00e3o e exibir uma janela em um plugin QGIS, com base no\" \/>\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=\"bot\u00e3o plugin qgis,janela plugin qgis,plugin builder qgis,plugin qgis python,pyqgis tutorial\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\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=\"[PT]Desenvolver um Plugin QGIS: Adicionar um Bot\u00e3o e uma Janela | Blog SIG &amp; Territoires\" \/>\n\t\t<meta property=\"og:description\" content=\"Adicionar um bot\u00e3o \u00e0 interface do QGIS costuma ser o primeiro passo concreto no desenvolvimento de um plugin. \u00c9 isso que transforma um simples script em Python em uma ferramenta realmente utiliz\u00e1vel pelo usu\u00e1rio. Neste terceiro artigo do tutorial, veremos como adicionar um bot\u00e3o e exibir uma janela em um plugin QGIS, com base no\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.sigterritoires.fr\/index.php\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-06-11T10:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-06-11T09:35:34+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=\"[PT]Desenvolver um Plugin QGIS: Adicionar um Bot\u00e3o e uma Janela | Blog SIG &amp; Territoires\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Adicionar um bot\u00e3o \u00e0 interface do QGIS costuma ser o primeiro passo concreto no desenvolvimento de um plugin. \u00c9 isso que transforma um simples script em Python em uma ferramenta realmente utiliz\u00e1vel pelo usu\u00e1rio. Neste terceiro artigo do tutorial, veremos como adicionar um bot\u00e3o e exibir uma janela em um plugin QGIS, com base no\" \/>\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\\\/pt\\\/desenvolver-plugin-qgis-adicionar-botao-janela\\\/#article\",\"name\":\"[PT]Desenvolver um Plugin QGIS: Adicionar um Bot\\u00e3o e uma Janela | Blog SIG & Territoires\",\"headline\":\"[PT]Desenvolver um Plugin QGIS: Adicionar um Bot\\u00e3o e uma Janela\",\"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\\\/pluginsQGIS3.jpg?fit=409%2C307&ssl=1\",\"width\":409,\"height\":307},\"datePublished\":\"2026-06-11T12:00:00+02:00\",\"dateModified\":\"2026-06-11T11:35:34+02:00\",\"inLanguage\":\"fr-FR\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/pt\\\/desenvolver-plugin-qgis-adicionar-botao-janela\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/pt\\\/desenvolver-plugin-qgis-adicionar-botao-janela\\\/#webpage\"},\"articleSection\":\"Plugin, QGis, bot\\u00e3o plugin QGIS, janela plugin QGIS, Plugin Builder QGIS, plugin QGIS Python, PyQGIS tutorial, Portugu\\u00eas\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/pt\\\/desenvolver-plugin-qgis-adicionar-botao-janela\\\/#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\\\/pt\\\/category\\\/qgis\\\/#listItem\",\"name\":\"QGis\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/pt\\\/category\\\/qgis\\\/#listItem\",\"position\":2,\"name\":\"QGis\",\"item\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/pt\\\/category\\\/qgis\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/pt\\\/category\\\/qgis\\\/pluigin-pt\\\/#listItem\",\"name\":\"Plugin\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/pt\\\/category\\\/qgis\\\/pluigin-pt\\\/#listItem\",\"position\":3,\"name\":\"Plugin\",\"item\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/pt\\\/category\\\/qgis\\\/pluigin-pt\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/pt\\\/desenvolver-plugin-qgis-adicionar-botao-janela\\\/#listItem\",\"name\":\"[PT]Desenvolver um Plugin QGIS: Adicionar um Bot\\u00e3o e uma Janela\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/pt\\\/category\\\/qgis\\\/#listItem\",\"name\":\"QGis\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/pt\\\/desenvolver-plugin-qgis-adicionar-botao-janela\\\/#listItem\",\"position\":4,\"name\":\"[PT]Desenvolver um Plugin QGIS: Adicionar um Bot\\u00e3o e uma Janela\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/pt\\\/category\\\/qgis\\\/pluigin-pt\\\/#listItem\",\"name\":\"Plugin\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/#person\",\"name\":\"Atilio Francois\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/pt\\\/desenvolver-plugin-qgis-adicionar-botao-janela\\\/#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\\\/pt\\\/desenvolver-plugin-qgis-adicionar-botao-janela\\\/#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\\\/pt\\\/desenvolver-plugin-qgis-adicionar-botao-janela\\\/#webpage\",\"url\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/pt\\\/desenvolver-plugin-qgis-adicionar-botao-janela\\\/\",\"name\":\"[PT]Desenvolver um Plugin QGIS: Adicionar um Bot\\u00e3o e uma Janela | Blog SIG & Territoires\",\"description\":\"Adicionar um bot\\u00e3o \\u00e0 interface do QGIS costuma ser o primeiro passo concreto no desenvolvimento de um plugin. \\u00c9 isso que transforma um simples script em Python em uma ferramenta realmente utiliz\\u00e1vel pelo usu\\u00e1rio. Neste terceiro artigo do tutorial, veremos como adicionar um bot\\u00e3o e exibir uma janela em um plugin QGIS, com base no\",\"inLanguage\":\"fr-FR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/pt\\\/desenvolver-plugin-qgis-adicionar-botao-janela\\\/#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\\\/pluginsQGIS3.jpg?fit=409%2C307&ssl=1\",\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/pt\\\/desenvolver-plugin-qgis-adicionar-botao-janela\\\/#mainImage\",\"width\":409,\"height\":307},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.sigterritoires.fr\\\/index.php\\\/pt\\\/desenvolver-plugin-qgis-adicionar-botao-janela\\\/#mainImage\"},\"datePublished\":\"2026-06-11T12:00:00+02:00\",\"dateModified\":\"2026-06-11T11:35:34+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":"[PT]Desenvolver um Plugin QGIS: Adicionar um Bot\u00e3o e uma Janela | Blog SIG & Territoires","description":"Adicionar um bot\u00e3o \u00e0 interface do QGIS costuma ser o primeiro passo concreto no desenvolvimento de um plugin. \u00c9 isso que transforma um simples script em Python em uma ferramenta realmente utiliz\u00e1vel pelo usu\u00e1rio. Neste terceiro artigo do tutorial, veremos como adicionar um bot\u00e3o e exibir uma janela em um plugin QGIS, com base no","canonical_url":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/","robots":"max-image-preview:large","keywords":"bot\u00e3o plugin qgis,janela plugin qgis,plugin builder qgis,plugin qgis python,pyqgis tutorial","webmasterTools":{"google-site-verification":"ByXHZUbGNn7RNv-Xk5A-ysTZrM65VLIO2RxfSJ2nIEQ","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#article","name":"[PT]Desenvolver um Plugin QGIS: Adicionar um Bot\u00e3o e uma Janela | Blog SIG & Territoires","headline":"[PT]Desenvolver um Plugin QGIS: Adicionar um Bot\u00e3o e uma Janela","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\/pluginsQGIS3.jpg?fit=409%2C307&ssl=1","width":409,"height":307},"datePublished":"2026-06-11T12:00:00+02:00","dateModified":"2026-06-11T11:35:34+02:00","inLanguage":"fr-FR","mainEntityOfPage":{"@id":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#webpage"},"isPartOf":{"@id":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#webpage"},"articleSection":"Plugin, QGis, bot\u00e3o plugin QGIS, janela plugin QGIS, Plugin Builder QGIS, plugin QGIS Python, PyQGIS tutorial, Portugu\u00eas"},{"@type":"BreadcrumbList","@id":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#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\/pt\/category\/qgis\/#listItem","name":"QGis"}},{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/category\/qgis\/#listItem","position":2,"name":"QGis","item":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/category\/qgis\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/category\/qgis\/pluigin-pt\/#listItem","name":"Plugin"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/category\/qgis\/pluigin-pt\/#listItem","position":3,"name":"Plugin","item":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/category\/qgis\/pluigin-pt\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#listItem","name":"[PT]Desenvolver um Plugin QGIS: Adicionar um Bot\u00e3o e uma Janela"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/category\/qgis\/#listItem","name":"QGis"}},{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#listItem","position":4,"name":"[PT]Desenvolver um Plugin QGIS: Adicionar um Bot\u00e3o e uma Janela","previousItem":{"@type":"ListItem","@id":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/category\/qgis\/pluigin-pt\/#listItem","name":"Plugin"}}]},{"@type":"Person","@id":"https:\/\/www.sigterritoires.fr\/#person","name":"Atilio Francois","image":{"@type":"ImageObject","@id":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#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\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#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\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#webpage","url":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/","name":"[PT]Desenvolver um Plugin QGIS: Adicionar um Bot\u00e3o e uma Janela | Blog SIG & Territoires","description":"Adicionar um bot\u00e3o \u00e0 interface do QGIS costuma ser o primeiro passo concreto no desenvolvimento de um plugin. \u00c9 isso que transforma um simples script em Python em uma ferramenta realmente utiliz\u00e1vel pelo usu\u00e1rio. Neste terceiro artigo do tutorial, veremos como adicionar um bot\u00e3o e exibir uma janela em um plugin QGIS, com base no","inLanguage":"fr-FR","isPartOf":{"@id":"https:\/\/www.sigterritoires.fr\/#website"},"breadcrumb":{"@id":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#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\/pluginsQGIS3.jpg?fit=409%2C307&ssl=1","@id":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#mainImage","width":409,"height":307},"primaryImageOfPage":{"@id":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/#mainImage"},"datePublished":"2026-06-11T12:00:00+02:00","dateModified":"2026-06-11T11:35:34+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":"[PT]Desenvolver um Plugin QGIS: Adicionar um Bot\u00e3o e uma Janela | Blog SIG &amp; Territoires","og:description":"Adicionar um bot\u00e3o \u00e0 interface do QGIS costuma ser o primeiro passo concreto no desenvolvimento de um plugin. \u00c9 isso que transforma um simples script em Python em uma ferramenta realmente utiliz\u00e1vel pelo usu\u00e1rio. Neste terceiro artigo do tutorial, veremos como adicionar um bot\u00e3o e exibir uma janela em um plugin QGIS, com base no","og:url":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/","article:published_time":"2026-06-11T10:00:00+00:00","article:modified_time":"2026-06-11T09:35:34+00:00","article:publisher":"https:\/\/www.facebook.com\/atilio.francois\/","twitter:card":"summary","twitter:site":"@SigTerritoires","twitter:title":"[PT]Desenvolver um Plugin QGIS: Adicionar um Bot\u00e3o e uma Janela | Blog SIG &amp; Territoires","twitter:description":"Adicionar um bot\u00e3o \u00e0 interface do QGIS costuma ser o primeiro passo concreto no desenvolvimento de um plugin. \u00c9 isso que transforma um simples script em Python em uma ferramenta realmente utiliz\u00e1vel pelo usu\u00e1rio. Neste terceiro artigo do tutorial, veremos como adicionar um bot\u00e3o e exibir uma janela em um plugin QGIS, com base no","twitter:creator":"@SigTerritoires"},"aioseo_meta_data":{"post_id":"16387","title":null,"description":null,"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-09 03:51:45","updated":"2026-06-11 11:57:13","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\/pt\/category\/qgis\/\" 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\/pt\/category\/qgis\/pluigin-pt\/\" title=\"Plugin\">Plugin<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t[PT]Desenvolver um Plugin QGIS: Adicionar um Bot\u00e3o e uma Janela\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.sigterritoires.fr"},{"label":"QGis","link":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/category\/qgis\/"},{"label":"Plugin","link":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/category\/qgis\/pluigin-pt\/"},{"label":"[PT]Desenvolver um Plugin QGIS: Adicionar um Bot\u00e3o e uma Janela","link":"https:\/\/www.sigterritoires.fr\/index.php\/pt\/desenvolver-plugin-qgis-adicionar-botao-janela\/"}],"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-4gj","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/16387","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=16387"}],"version-history":[{"count":0,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/16387\/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=16387"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/categories?post=16387"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/tags?post=16387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}