Tutoria Zenity
Autor: Dalmo Pereira | Publicado: 2012-02-26T13:24:00-08:00

Apertem os cintos, e boa viagem !




1. Prefácio
Bem vindos(as) ao “Alguma coisa sobre zenity”, essa é uma tentativa de fazer um tutorial bem legal do programa zenity.
O zenity é um pouco diferente do famoso dialog, velho conhecido de muitos programadores de Shell Script.
Você vai usá-lo quase dá mesma forma, porém dessa vez, interagindo com a interface GTK+, ou seja a interface gráfica.
1.1. Por quê esse documento existe ?
Este documento existe, para se tornar uma pequena referência ao 
zenity, visto que existem poucos documentos disponíveis na internet 
sobre o assunto.
1.2. Objetivos e escopo deste documento
O Objetivo
O Objetivo principal deste documento, é que um leigo em zenity possa,
 ao final da leitura, ser capaz de criar scripts ou alterar scripts já 
existentes.
Requisito
Do Leitor, espera-se um conhecimento prévio de programação em Shell 
Script ( Bourne Shell ). Os scripts que serão demonstrados aqui são 
simples, mas para um leigo em Shell Script será difícil aproveitar o 
conteúdo desse documento. Afinal, o zenity foi feito para trabalhar em 
conjunto com o Shell.
Recomendação
Para um bom aprendizado, recomenda-se que o leitor tenha uma shell 
disponível no momento da leitura, para que o leitor tenha experiência 
prática com o zenity, e não apenas leia o texto.
Boa Leitura !
2. Introdução
2.1 O que é o zenity
zenity, é um programa para modo gráfico, que desenhas caixas de 
diálogo na tela. Essas caixas são usadas para compor interfaces 
amigáveis ao usuário.
O zenity é um executável, que recebe todos os parâmetros via linha de
 comando, então ele geralmente é usado dentro de um Shell Script. Com 
isso fazemos programas mais interativos.
No zenity podemos construir muitas coisas práticas, como por exemplo, caixas de aviso, caixa de informação, calendários, etc.
Conseguimos assim inserir uma grande praticidade em muitos scripts que geralmente eram ‘mortos’.
É bastante divertido, acreditem.
Bem, chega de falatório, e vamos colocar a mão na massa, ou no teclado, como queiram.
3. Seu primeiro contato com o zenity
Você está louco para fazer o seu primeiro ‘programa’ no zenity, então
 vamos lá, abra um shell, ou ainda faça os comandos Alt+F2 ( É como o 
executar do Linux ), e digite:

$ zenity –calendar
Moleza não é ?!
O zenity reconhece vários tipos de “caixas”, e esta é a do calendário.
3.1. Listagem das funções
Veremos aqui, todas as funções suportadas pelo zenity, que podem ser usadas combinadas umas com as outras.
Opções de caixa
–calendar
Mostra um calendário
–entry
Mostra uma caixa onde você pode inserir um texto
–error
Mostra uma janela de erro
–file-selection
Mostra uma janela onde posso selecionar arquivos
–info
Mostra uma caixa de informação
–list
Mostra uma caixa com lista
–notification
Mostra uma caixa de notificação
–progress
Mostra uma caixa de progresso
–question
Mostra uma caixa com uma pergunta
–text-info
Mostra uma caixa com uma informação ( texto )
–warning
Mostra uma caixa de alerta
Opções gerais
–title=TITULO
Define o título da caixa
–window-icon=CAMINHO_DO_ICONE
Define um ícone para janela
–width=LARGURA
Define a largura da janela
–height=ALTURA
Define a altura da janela
Opções do calendário
–text=TEXTO
Define o texto da caixa
–day=DIA
Define o dia
–month=MES
Define o mês
–year=ANO
Define o ano
–date-format=STRING
Define o formato para data mostrada
Opções de entrada de texto
–text=TEXTO
Define o texto da caixa
–entry-text=TEXTO
Define o texto da entrada
–hide-text
Esconde o texto da entrada
Opções para a caixa de erro
 –text=TEXTO
Define o texto da caixa
Opções para seleção de arquivos
–filename=ARQUIVO
Define o nome do arquivo
–multiple
Habilita a seleção de vários arquivos
–separator=SEPARADOR
Define o caracter separador, quando selecionamos vários arquivos
Caixa de Informação
 –text=TEXTO
Define o texto de entrada
Caixa de Listagem
 –text=TEXTO
Define o texto da caixa
–column=STRING
Define o cabeçalho da coluna
–checklist
Usa caixas de checagem na primeira coluna
–radiolist
Usa radio-buttons na primeira coluna
–separator=STRING
Define o separador
–editable
Habilita mudanças para o texto
–print-column=STRING
Especifica qual coluna tera a saída padrão, por default é a primeira coluna
Caixa de Notificação
–text=TEXTO
Define o texto da notificação
Opções da Caixa de Progresso
–text=TEXO
Define o texto da caixa
–percentage=INTEIRO
Define a porcentagem inicial
–auto-close
Fecha a caixa assim que completar 100 %
–pulsate
Barra de progresso pulsante
Opções da Caixa de Perguntas
–text=TEXTO
Define o texto da caixa
Opções de Texto
–filename=NOME_DO_ARQUIVO
Abre o arquivo
–editable
Habilita mudanças para caixa de texto
Opções de Aviso
–text=TEXTO
Define o texto da caixa
Opções mistas
-?, –help
Mostra a ajuda
–about
Mostra uma caixa de Sobre
–version
Indica qual a versão do programa
4. Exemplos de alguns tipos de caixa :
Exemplo de calendário:

$ zenity –title=’Escolha a data’ –calendar –day=31 –month=12 –year=2007
Exemplo de caixa de entrada:

$ zenity –title “Digite o IP da máquina que você deseja pingar” –entry –text ” “
Exemplo de caixa de listagem :

$ zenity  –list  –checklist  –column “Comprar” –column “Item” TRUE Maçã TRUE Laranja FALSE Peras FALSE Uvas
Exemplo de seleção de arquivos:

$ zenity  –title=”Selecione o arquivo a ser removido” –file-selection
Exemplo de caixa de alerta:

$ zenity –question –title “Cuidado !” –text “Usuário encontrado, deseja removê-lo ?”
Pesquisa por arquivos :

$ find . -name *.mp3 | zenity –list –title “Busca por resultados” –text “Procurando todos as MP3..” –column “Arquivos”
Exemplo de notificação ( Se estiver usando gnome, perceba o ícone novo perto do relógio ) :


$ zenity –notification –window-icon=update.png –text “É preciso fazer update do usuário”
Exemplo de barra de progresso :

$ find $HOME -name ‘*.mp3′ | zenity –progress –pulsate

Exemplo de Seleção de Arquivos : 

&nbsp;x=$(zenity --file-selection);mplayer "$x"