Zenity

programma libero e multipiattaforma
Versione del 30 lug 2013 alle 09:59 di Andzoff (discussione | contributi) (aggiunte sezioni)

Zenity è un programma libero e multipiattaforma che permette la realizzazione ed esecuzione di finestre di dialogo GTK+ all'interno di script di bash.

Zenity
software
Schermata di esempio
Schermata di esempio
GenereGestore di finestre di dialogo (non in lista)
SviluppatoreGlynn Foster, Lucas Rocha
Ultima versione4.1.90 (31 gennaio 2025)
Sistema operativoMultipiattaforma
LinguaggioC
ToolkitGTK
Licenzalicenza GPL
(licenza libera)
Sito webwiki.gnome.org/Zenity

Gli script in bash sono dei programmi a riga di comando molto diffusi in ambiente Unix in quanto costituiscono dei potenti strumenti per l'automazione delle attività di elaborazione. La riga di comando è spesso una limitazione in quanto gli utenti preferiscono interagire con delle finestre di dialogo, da qui nasce l'esigenza di dotare gli script di un sistema di interazione grafico.

Esistono diversi strumenti preposti a questo scopo, ma zenity si distingue per la sua semplicità ed immediatezza di utilizzo da parte del programmatore.

Sebbene Zenity nasca in ambiente Unix, ci sono dei progetti di porting per Windows e Mac OS X.

Requisiti ed installazione

Zenity è normalmente già installato di default in tutte le distribuzioni Linux equipaggiate con l'ambiente grafico Gnome. Le librerie GTK+ che sono parte dell'ambiente Gnome, sono un prerequisito per l'installazione di zenity. Laddove zenity non sia installato, è possibile procedere alla installazione tramite il normale meccanismo di gestione dei pacchetti di Linux. Per verificare la prezenza di Zenity sul proprio sistema è possibile impartire il comando:

zenity --version

il risultato di questo comando è l'indicazione della versione di zenity.

Help del programma

Un altro comando utile è la richiesta di help:

zenity --help

Il cui risultato è il seguente utile sommario di informazioni:

Usage:
  zenity [OPTION...]

Help Options:
  -?, --help                  Show help options
  --help-all                  Show all help options
  --help-general              Show general options
  --help-calendar             Show calendar options
  --help-entry                Show text entry options
  --help-error                Show error options
  --help-info                 Show info options
  --help-file-selection       Show file selection options
  --help-list                 Show list options
  --help-notification         Show notification icon options
  --help-progress             Show progress options
  --help-question             Show question options
  --help-warning              Show warning options
  --help-scale                Show scale options
  --help-text-info            Show text information options
  --help-misc                 Show miscellaneous options
  --help-gtk                  Show GTK+ Options

Application Options:
  --calendar                  Display calendar dialog
  --entry                     Display text entry dialog
  --error                     Display error dialog
  --info                      Display info dialog
  --file-selection            Display file selection dialog
  --list                      Display list dialog
  --notification              Display notification
  --progress                  Display progress indication dialog
  --question                  Display question dialog
  --warning                   Display warning dialog
  --scale                     Display scale dialog
  --text-info                 Display text information dialog
  --display=DISPLAY           X display to use

Esempi di utilizzo

Riportiamo di seguito alcuni semplici esempi, utili per comprendere il funzionamento e le potenzialità di zenity.

Finestra di informazione

Per visualizzare una semplice finestra di informazione, si può impartire il seguente comando dalla shell di Linux:

zenity --info --title "Finestra di informazione" \
       --text "Questo è un esempio di info dialog.\nVoce zenity di Wikipedia"

Questo comando sortirà l'apertura della finestra di dialogo. La finestra scompare alla pressione del tasto OK. E' possibile inserire il comando in uno script di shell, che assumerà la seguente forma:

#!/bin/sh

zenity --info --title "Finestra di informazione" \
       --text "Questo è un esempio di info dialog.\nVoce zenity di Wikipedia"

Finestre per warning ed errori

Per i warning e gli errori la grafica è leggermente diversa, quindi sono richiesti i seguenti comandi:

zenity --warning --title "Finestra di informazione" \
       --text "Questo è un esempio di info dialog.\nVoce zenity di Wikipedia"
zenity --error --title "Finestra di informazione" \
       --text "Questo è un esempio di info dialog.\nVoce zenity di Wikipedia"

Anche per questi due comandi, è possibile l'inserimento in uno script, analogamente a quanto visto nel precedente paragrafo.

Selezione di un file

La finestra per la selezione di un file è possibile tramite il seguente comando esempio:

zenity --file-selection --title "Seleziona un file"

Il comando sortisce l'apertura della finestra di dialogo per la selezione di un file. Dopo che l'utente ha selezionato il file ed ha premuto il tasto OK, la finestra si chiude e sulla riga di comando viene riportato il nome del file selezionato. Questa possibilità di zenity è utile all'interno di uno script:

#!/bin/sh

INPUT_FILE=`zenity --file-selection --title "Seleziona un file"`

Come vediamo, il nome del file viene assegnato ad una variabile che potrà essere utilizzata dallo script. In realtà, l'utente potrebbe non selezionare nessun file, o potrebbe premere il tasto Cancel. In questo caso, il controllo da parte dello script della scelta dell'operatore è più complesso:

#!/bin/sh

INPUT_FILE=`zenity --file-selection --title "Seleziona un file"`

case $? in
    0)
        echo "$INPUT_FILE selected.";;
    1)
        echo "Nessun file selezionato";
        zenity --warning --text="Nessun file selezionato, uscita dal programma";
        exit;;
    -1)
        echo "Nessun file selezionato";
        zenity --warning --text="Nessun file selezionato, uscita dal programma";
        exit;;
esac

Collegamenti esterni

  Portale Software libero: accedi alle voci di Wikipedia che trattano di software libero