Manual
do
Maker
.
com
No artigo anterior relacionado vimos como criar um menu para interagir com o usuário e/ou para agilizar nossa interação com o sistema. Bem, mostrei o uso do Dialog com shell script e nesse artigo farei uma introdução ao Dialog com Python.
Em shell script o Dialog é um programa independente. Em Python o Dialog é uma biblioteca a ser importada dentro do programa. Para instalá-la, deve-se escolher a versão (Python 2 ou Python3):
sudo apt-get install python3-dialog
Aproveite para instalar o bpython, um programa para escrever código Python "in flow", que permite ver o resultado enquanto se está programando, além de ter auto-complete e informações dos recursos utilizados.
apt-get install python-pip #python2
pip install bpython
Nos exemplos estou utilizando Python2, mas deve ser exatamente o mesmo para a versão 3.
Abra um terminal e digite:
bpython
Comece incluindo a biblioteca Dialog e o locale. Instancie e execute a primeira janela:
Ao apertar o último enter, o resultado deve ser algo como:
A comparação da flag de retorno pode ser dialogo**.OK** ou Dialog.Ok, além de "ok". Considerando isso, vamos criar um checklist:
from dialog import Dialog
import locale
import time
import sys
locale.setlocale(locale.LC_ALL,'')
dialogo = Dialog(dialog="dialog")
if dialogo.yesno("Seguir?") == dialogo.OK:
dialogo.infobox("seguindo...")
time.sleep(1)
code, tags = dialogo.checklist("Arquiteturas preferidas:",
choices=[("PIC", "", False), ("Atmel","",False), ("ESP32","",True)],
title="Que tal essas opcoes?",
backtitle="...e agora...")
if not code == dialogo.OK:
sys.exit(0)
dialogo.infobox("ok. Tchau.")
A última janela deve resultar em algo como:
A variável tags é uma lista dos itens selecionados, de modo que para saber as opções escolhidas é só consultar a lista.
if 'ESP32' in tags:
dialogo.msgbox("Excelente escolha")
Colocando isso após confirmar que o último status foi ok, deve resultar em algo como:
Mas usar Dialog com Python é praticamente o mesmo que utilizar com shell script. Desse modo, basta ler a documentação para saber as opções. Quanto aos parâmetros, o próprio bpython lhe auxiliará. Além das tradicionais chamadas do Dialog em shell, a versão para Python oferece montes de recursos a mais, como por exemplo:
dialogo.inputmenu('teste',choices=[('um','dois')])
O que resulta em um menu editável:
Não tem segredo, é só começar a brincar no bpython para dominar! Tem treeview,, inputmenu, mixedgauge, seletor de diretórios e muito mais, como pode ser visto nesses screenshots.
Divirta-se!
Inscreva-se no nosso canal Manual do Maker no YouTube.
Também estamos no Instagram.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.