Pesquisa de site

Zenity - Cria caixas de diálogo gráficas (GTK+) em linha de comando e scripts de shell


GNU Linux, o sistema operacional construído em um Kernel muito poderoso chamado Linux. O Linux é famoso por suas operações de linha de comando. Com a invenção do Linux no dia-a-dia e na computação Desktop, o nix não permanece mais inclinado à linha de comando, é igualmente gráfico e o desenvolvimento de aplicativos gráficos não permanece mais uma tarefa difícil.

Aqui neste artigo iremos discutir a criação e execução de uma caixa de diálogo gráfica simples usando o aplicativo GTK+ chamado “Zenity“.

O que é Zenidade?

Zenity é um aplicativo de código aberto e multiplataforma que exibe caixas de diálogo GTK+ em linha de comando e usando scripts de shell. Permite solicitar e apresentar informações de/para shell em Caixas Gráficas. O aplicativo permite criar caixas de diálogo gráficas em linha de comando e facilita muito a interação entre o usuário e o shell.

Existem outras alternativas, mas nada se compara à simplicidade do Zenity, especialmente quando você não precisa de programação complexa. Zenity, uma ferramenta que você deve ter em mãos.

Recursos do Zenity

  1. Software FOSS
  2. Aplicativo multiplataforma
  3. Permitir execução da caixa de diálogo GTK+
  4. Ferramenta de linha de comando
  5. Suporte em Shell Scripting

Utilidade

  1. Criação fácil de GUI
  2. Menos recursos do que outras ferramentas complexas
  3. Permite que scripts de shell interajam com usuários de GUI
  4. A criação simples de diálogos é possível para interação gráfica do usuário

Como o Zenity está disponível para todas as principais plataformas conhecidas e é baseado na biblioteca GTK+, o programa Zenity pode ser portado de/para outra plataforma.

Instalação do Zenity no Linux

Zentity é por padrão instalado ou disponível no repositório da maior parte da distribuição Linux padrão de hoje. Você pode verificar se está instalado em sua máquina ou não executando os seguintes comandos.

ravisaive@tecmint:~$ zenity --version 

3.8.0
ravisaive@tecmint:~$ whereis zenity 

zenity: /usr/bin/zenity /usr/bin/X11/zenity /usr/share/zenity /usr/share/man/man1/zenity.1.gz

Se não estiver instalado, você pode instalá-lo usando o comando Apt ou Yum conforme mostrado abaixo.

ravisaive@tecmint:~$ sudo apt-get install zenity		[on Debian based systems]

root@tecmint:~# yum install zenity				[on RedHat based systems]

Além disso, você também pode compilá-lo a partir dos arquivos de origem, baixando o pacote fonte do Zenity mais recente (ou seja, a versão atual 3.8) usando o link a seguir.

  1. http://ftp.gnome.org/pub/gnome/sources/zenity/

Caixas de diálogo básicas do Zenity

Alguns dos diálogos básicos do Zenity, que podem ser invocados diretamente da linha de comando.

1. Que tal uma rápida caixa de diálogo de calendário?
root@tecmint:~# zenity --calendar

2. Uma caixa de diálogo de erro
root@tecmint:~# zenity --error

3. Uma caixa de diálogo de entrada de texto geral
root@tecmint:~# zenity --entry

4. Um diálogo de informações
root@tecmint:~# zenity --info

5. Uma caixa de diálogo de perguntas
root@tecmint:~# zenity --question

6. Uma barra de progresso
root@tecmint:~# zenity --progress

7. Diálogo de escala
root@tecmint:~# zenity --scale

8. Uma caixa de diálogo de senha
root@tecmint:~# zenity --password

9. Uma caixa de diálogo de formulário
root@tecmint:~# zenity --forms

10. Um diálogo sobre
root@tecmint:~# zenity --about

Caixa de diálogo Criar Shell Script

Agora estaríamos discutindo a criação do Zenity Dialog usando scripts de shell simples aqui. Embora possamos criar um único diálogo executando comandos Zenity diretamente do shell (como fizemos acima), não podemos vincular duas caixas de diálogo para obter algum resultado significativo.

Que tal uma caixa de diálogo interativa que recebe informações suas e mostra o resultado.

#!/bin/bash 
first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry) 
zenity --info --title="Welcome" --text="Mr./Ms. $first" 
last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry) 
zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last"

Salve-o em ‘anything.sh‘ (convencionalmente) e não se esqueça de torná-lo executável. Defina a permissão 755 no arquivo anything.sh e execute o script.

root@tecmint:~# chmod 755 anything.sh 
root@tecmint:~# sh anything.sh

Sobre a descrição do script

O shebang convencional, também conhecido como hashbang

#!/bin/bash

Na linha abaixo, ‘primeiro’ é uma variável e o valor da variável é gerado em tempo de execução.

    1. –entry‘ significa que o zenity é solicitado a gerar uma caixa de entrada de texto.
    2. – title=‘define o título da caixa de texto gerada.
    3. —text=‘ define o texto que está disponível na caixa de entrada de texto.
first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry)

Esta linha do arquivo de script abaixo é para geração da caixa de diálogo Informações (–info), com título “Bem-vindo” e Texto “Sr./Sra.primeiro”

zenity --info --title="Welcome" --text="Mr./Ms. $first"

Esta linha do script é semelhante à linha número dois do script, exceto que aqui uma nova variável ‘last’ é definida.

last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry)

Esta última linha do script é novamente semelhante à terceira linha do script e gera uma caixa de diálogo de informações que contém as variáveis ‘$first’ e ‘$last’.

zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last"

Para obter mais informações sobre como criar caixas de diálogo personalizadas usando shell script, visite a seguinte página de referência Zenity.

  1. https://help.gnome.org/users/zenity/stable/

No próximo artigo integraremos o Zenity com mais scripts de shell para interação do usuário com a GUI. Até então fique atento e conectado ao Tecmint. Não se esqueça de dar seu feedback valioso na seção de comentários.