Strumenti Utente

Strumenti Sito


Barra laterale

programmazione:bash:yad

Interfacce grafiche con Yad

Autore: Fabio Di Matteo
Ultima revisione: 16/06/2015 - 11:10

Yad (yet another dialog) è un fork di Zenity, con alcune migliorie, come bottoni personalizzabili, ulteriori dialog, pop-up menu nelle notification icon e altro. Una volta installato è possibile vedere gli esempi di utilizzo con

yad --help

Esempio base di utilizzo con i form

#!/bin/bash
 
#Facciamo comparire la finestra con i campi e salviamo il il valore di tutti i campi in "datiform"
datiform=$(yad --title "Test Form" --form --field "Nome" --field="Cognome")
 
#tramite awak scorporiamo il valore nelle variabili Nome e Cognome
Nome=$(echo $datiform | awk 'BEGIN {FS="|" } { print $1 }')
Cognome=$(echo $datiform | awk 'BEGIN {FS="|" } { print $2 }')
 
#Adesso che abbiamo le variabili, le stampiamo a video.
yad --text="Il tuo nome -> $Nome $Cognome"

Aggiungere altri tipi di campi

Nel prossimo esempio aggiungeremo un altro campo di tipo data . Per una fista dei tipi di campo basta digitare:

yad --help-form
Usage:
  yad [OPTION...] Yet another dialoging program

Form options
  --form                                         Display form dialog
  --field=LABEL[:TYPE]                           Add field to form (TYPE - H, RO, NUM, CHK, CB, CBE, FL, SFL, DIR, CDIR, FN, MFL, DT, CLR, BTN or LBL)
  --align=TYPE                                   Set alignment of fileds labels (left, center or right)
  --columns=NUMBER                               Set number of columns in form
  --separator=SEPARATOR                          Set output separator character
  --item-separator=SEPARATOR                     Set separator character for combobox or scale data
  --date-format=PATTERN                          Set the format for the returned date
#!/bin/bash
 
#Facciamo comparire la finestra con i campi e salviamo il il valore di tutti i campi in "datiform"
datiform=$(yad --title "Test Form" --form --field "Nome" --field="Cognome" --field="data di nascita:DT")
 
#tramite awak scorporiamo il valore nelle variabili Nome e Cognome
Nome=$(echo $datiform | awk 'BEGIN {FS="|" } { print $1 }')
Cognome=$(echo $datiform | awk 'BEGIN {FS="|" } { print $2 }')
Data=$(echo $datiform | awk 'BEGIN {FS="|" } { print $3 }')
 
#Adesso che abbiamo le variabili, le stampiamo a video.
yad --text="Ti chiami $Nome $Cognome e sei nato il $Data"

Un editore di scorciatoie .desktop

#!/bin/sh
data="$(yad --title="Editor scorciatoie" --text="Un semplice editore per le scorciatoie del desktop"  --item-separator='|' --form --field="Tipo:CB" --field="Nome" --field="Nome Generico" --field="Commento" --field="Comando" --field="Icona" --field="In terminale:CHK" --field="Notifica avvio:CHK"  --field="Categorie"   "Application|File"   "Nome" "Nome generico" "Questo è un commento" "/usr/bin/yad" "yad" FALSE TRUE  --button="gtk-ok:0" --button="gtk-cancel:1")"
 
Type=$(echo $data | awk 'BEGIN {FS="|" } { print $1 }')
Name=$(echo $data | awk 'BEGIN {FS="|" } { print $2 }')
GenericName=$(echo $data | awk 'BEGIN {FS="|" } { print $3 }')
Comment=$(echo $data | awk 'BEGIN {FS="|" } { print $4 }')
Command=$(echo $data | awk 'BEGIN {FS="|" } { print $5 }')
Icon=$(echo $data | awk 'BEGIN {FS="|" } { print $6 }')
InTerminal=$(echo $data | awk 'BEGIN {FS="|" } { print $7 }')
StartupNotify=$(echo $data | awk 'BEGIN {FS="|" } { print $8 }')
Category=$(echo $data | awk 'BEGIN {FS="|" } { print $9 }')
 
FILE=$Name.desktop
 
echo "[Desktop Entry]"> $FILE
echo "Type=$Type" >> $FILE
echo "Name=$Name" >> $FILE
echo "GenericName=$GenericName" >> $FILE
echo "Comment=$Comment" >> $FILE
echo "Exec=$Command" >> $FILE
echo "Icon=$Icon" >> $FILE
echo "Terminal=$InTerminal" >> $FILE
echo "StartupNotify=$StartupNotify" >> $FILE
echo "Categories=$Category" >> $FILE

programmazione/bash/yad.txt · Ultima modifica: 18/04/2018 - 15:48 (modifica esterna)