====== 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 ===== {{programmazione:bash:schermata-test_form.png|}} {{programmazione:bash:schermata-yad.png|}} #!/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 ===== {{:programmazione:bash:desktop_editor.png?200|}} #!/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