Um pouco sobre Dialog - Parte I

Started by Cloudy, 11 de March , 2006, 02:05:33 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Cloudy

O Dialog é utilizado para criar scripts com menus, em interfaces gráficas.

Vou dando exeplos e explicando.

Vou começar com um exemplo bem simples, chamamos um menu com uma mensagenzinha:
#!/bin/bash
dialog -backtitle "Caixa de Dialogo" -title "Execução do Dialog"\
-msgbox "wWw.Darkers.com.br" 9 50

Salve, execute e veja o que aconteceu. Vou explicar o code rapidamente aqui. O item "-title" mostra o título na caixa de mensagem, o "-backtitle" mostra o título do Dialog (Lá trás), e o "msgbox" abre uma caixa de mensagem normal, com um botão de OK, escrito wWw.Darkers.com.br, e por último o "9 50" são as dimensões da Caixa.

Obs: A "\" no final, serve para dizer que o comando possa continuar nas linha seguintes.

Agora o mesmo code, mas comentado:
#!/bin/bash # Onde vai rodar
dialog -backtitle "Caixa de Dialogo"\ # Começa o dialog, com o título do Dialog: "Caixa de díalogo", a "\" indica que o comando continua
-title "Execução do Dialog"\ # Põe o título da caixa de diálogo, a "\" diz que o comando continua na próxia linha
-msgbox "wWw.Darkers.com.br" 9 50 # Define o tipo de caixa (msgbox), o texto (wWw.Darkers.com.br) e as dimenções (9 50)

No dialog vc pode trabalhar de várias maneiras, com msgbox, inputbox, infobox, etc. Veja abaixo alguma delas, e como funcionam:
--msgbox "Mensagem" altura largura
--yesno "Mensagem" altura largura
--infobox "Mensagem" altura largura
--inputbox "Mensagem" altura largura [comandos]
--textbox "Mensagem" altura largura


Temos também o "menu", que trabalha de uma forma um pouco diferente:
--menu
menu altura largur tag
item1
item2
(...)


Agora, um exemplo de "yesno":
#!/bin/bash
dialog \
--title "Exemplo Yes ou No"\
--yesno "\nVocê quer abrir o Firefox?" 7 50 \
valor=$?
comando=firefox
if [ $valor = 0 ] ; then
     firefox
elif [ $valor = 1 ] ; then
     echo "Vc escolheu No"
elif [ $valor = 255 ] ; then
     echo "Vc apertou ESC"
else
     echo "Vc fez merda..."
fi

Nesse exemplo podemos ver que foi usado uma instrução dentro do Dialog. Podemos trabalhar, junto com o Dialog, tanto com instruções de loop como o próprio Shell Script. As intruções usadas acima foram: Se a pessoa clicasse Sim, abria o Firefox, caso contrário mostrava uma mensagem personalizada para cada ação.

Obs: A variável $? é uma váriavel de sistema, vale a pena dar uma estudada depois.

Bem, por enquanto é só, depois posto a parte 2, que abrange InputBox e Menus, mas primeiro quero que vcs estudem isso, rodem os exemplos, modifiquem, pesquisem, e se tiverem dúvidas, postem aqui.

Ps: Ah, desculpa se estiver algum code errado, é que estou sem Linux pra testar, deu problema no Kernel e não tá nem iniciando, então estou digitando os códs direto aqui, se tiver algum erro, idéia, dúvida, poste aqui.

...by Cloudy
"You have to be trusted by the people tou lied to, so when they turn their back on you, you have the chance to the put the knife in." (Roger Waters)

...by Cloudy

slul

Uma dúvida:

Existem os dialogs e os Kdialogs

Qual a principal diferença entre eles?

o Kdialog soh roda em KDE?

Abraços Cloudy!

rodweb

Quote from: "slul"Uma dúvida:

Existem os dialogs e os Kdialogs

Qual a principal diferença entre eles?

o Kdialog soh roda em KDE?

Abraços Cloudy!

acho q é isso mesmo...
o dialog serve pra quem ta executando em modo texto...e o kdialog é como se fosse o xdialog, só q pra modo gráfico e no kde ;)

Shady

Cloudy, sinceramente voce esta surpreendendo. Continue assim!


Mundus Vult Decipi

Anonymous

Na real, o kdialog pode ser executado em qualquer face, desde que o X esteja aberto, só que na primeira vez que abri-lo em iutra face, irá demorar porque o KDE irá iniciar as libs dele, para qualquer prog dele rodar.
Tem os dialogos do gnome, mas eles dependem do zenity...

Anonymous

Esse post de Dialog está realmente bom. Só acho que vc deveria dar uma incrementada, tem coisas que vc citou mas não explicou, como por exemplo janelas "textbox", são coisas que são muito uteis.

Espero que acate minha idéia, vai melhorar bastante seu tópico.

E mesmo assim, parabéns.