Usi pratici della finestra di dialogo Zenity

Frequento molto i forum nel mio paese ... e onestamente è raro trovare qualcosa di interessante. Tuttavia, in uno di quei forum, c'è un utente che ha pubblicato due post interessanti su Linux, e questo è il primo (che voglio condividere con te):

Usi pratici della finestra di dialogo Zenity

Zenity è un insieme di finestre di dialogo grafiche utilizzate dalle librerie gtk, con questo programma possiamo inserire dati, selezionare un elenco di attività, mostrarci le informazioni risultanti da un determinato processo, permetterci di effettuare un'interruzione prima o durante un determinato processo, tra le altre funzioni.

Zenity è composto da circa 13 finestre di dialogo grafiche, vediamo cosa sono e le loro possibili combinazioni:

1- Per mostrarci un calendario e selezionare una data desiderata (questa data verrà mostrata in formato numerico una volta selezionata):

zenity --calendar

2- Per inserire testo (molto utile quando si richiedono dati o il nome di un file)

zenity --entry

Combinali correttamente in modo che ci chieda i dati da inserire

zenity --entry --text "Escriba el nombre del archivo"

3- Per informarci che si è verificato un errore

zenity --error --text "Imposible continuar"

4- Per selezionare un file

zenity --file-selection $HOME

L'aggiunta di questa opzione ci consente di selezionare diversi file:
--multiple

Con questo selezionerai solo le cartelle
--directory

Con questo invece di selezionare attiveremo l'opzione di salvataggio
--save

In questo modo eviteremo che un file esistente venga sovrascritto:
--confirm-overwrite

5- Mostraci alcune informazioni

zenity --info *text "Información a mostrar"

6- Mostraci un elenco di opzioni e selezionane una o un gruppo di queste:
zenity --list --column "nombre de columna" "opcion1" "opción2" "opción3" "opción4"

Ora cosa succede se vogliamo avere un elenco di azioni per determinati file, ma vogliamo che venga visualizzato il nome dell'azione da eseguire. Per ottenere ciò dobbiamo usare queste due opzioni (–hide-column value e * print-column value) sarebbe simile a questa:

zenity --hide-column 2 --print-column 2 --list --column "nombre de columna" --column "columna oculta" "nombre1" "comando1" "nombre2" "comando2"

Se vogliamo selezionare più di un'azione alla volta, dobbiamo aggiungere queste due opzioni
Testo che separerà la sequenza scelta dall'altra (in questo caso aggiungiamo questo »» che significa uno spazio
--separator=" "

E l'opzione che ci permetterà di selezionare più di un'azione alla volta
--multiple

7- Mostraci una notifica nella barra dei menu

zenity *notification *text "Texto deseado"

8- Mostraci l'avanzamento di un determinato processo:
zenity --progress --pulsate

9- Con questo ci mostrerà una domanda e possiamo scegliere se vogliamo o meno continuare con il processo:

zenity --question --text "Desea Continuar"

10- Con questo possiamo ricevere il risultato di una sequenza nella console come l'elenco di una ricerca di file, domande di aiuto, tra le altre:

zenity --text-info zenity --help-all | zenity --text-info

11- Questo può informarci che il processo è stato interrotto.

zenity --warning --text "El proceso ha fallado" ls /media/carpeta || zenity --warning --text "No existe el directorio"

12- Con questo possiamo selezionare un dato numero tramite una barra di scorrimento:

zenity --scale

Aggiungendo questa opzione, possiamo definire il valore minimo:
--value 60 --min-value 60
(l'opzione –value non dovrebbe mai essere inferiore a * min-value)

Con questo selezioniamo il valore massimo
--max-value 100

13- Con questo ci mostrerà una finestra di dialogo con la quale possiamo selezionare un colore desiderato e prendere il colore dall'altra parte con il cosiddetto contagocce del selettore di colori.
zenity --color-selection --show-palette

Dopo aver visto quali finestre di dialogo sono disponibili in questo programma, vediamo alcuni esempi pratici con queste:

- Vediamo come possiamo combinare la finestra di dialogo di immissione del testo
utilizzando uno script:

#!/bin/bash

#Darle a una palabra una secuencia de comandos.

archivo="`zenity --entry --text "Escriba el nombre del archivo"`"

#comando para renombrar

mv "$@" "`dirname "$@"`"/"$archivo"

- Vediamo come combinare la finestra di dialogo numero 12 di scale numeriche:
(Questo è un semplice script per abbassare la qualità delle immagini jpg e quindi ridurre lo spazio che occupa sui nostri dischi)

#!/bin/bash

#Darle a una palabra una secuencia de comandos.

foto="`zenity --scale --value 80 --min-value 60 --max-value 100`"

#comando para comprimir la imagen

mogrify -compress jpeg -quality "$foto%" "$@"

- Vediamo un altro esempio in cui useremo la finestra di dialogo del selettore del colore in cui aggiungeremo una cornice del colore che selezioniamo a una foto:

#!/bin/bash

#Darle a una palabra una secuencia de comandos.

foto="`zenity --color-selection --show-palette`" marco="`zenity --entry --text "Seleccione el rango deseado 6x6"`"

#comando para agregarle el marco

mogrify -border $marco -bordercolor $foto "$@"

- Vediamo un esempio con la finestra di dialogo dei messaggi di errore:

#!/bin/bash

rm "$@" || zenity --error --text "Imposible de eliminar esto es una carpeta"

Come puoi vedere, se qualcuno cerca di eliminare una cartella, il processo restituisce un errore quindi la catena continua grazie a questi operatori ||.

- Vediamo ora cosa possiamo fare con la finestra di dialogo numero 6, selezionando le azioni che eseguiremo su un determinato file:

#!/bin/bash

actions="`zenity --multiple --separator="" --hide-column 2 --print-column 2 --list --column "nombre de columna" --column "columna oculta" "comprimir un 80%" " -compress jpeg -quality 80%" "Cambiar tamaño a 800x600" " -resize 800x600"`"

#Comando

mogrify$actions "$@"

Notare che c'è uno spazio nella casella di comando poiché non consente al testo di iniziare con un trattino, quindi il delimitatore in questo caso deve essere null –separator = »».

- Vediamo un altro esempio con la finestra di dialogo di avanzamento

#!/bin/bash

#Script para eliminar

zenity --question --text "Desea borrara las imágenes dentro de esta carpeta `basename "$@"`" && find "$@" -name *.jpg -delete | zenity --list --progress * pulsate

... E beh, questo è tutto.

Spero di poterti portare più post interessanti.

saluti


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   marcisce87 suddetto

    L'unica cosa per cui ho usato zenity era perché winetricks chiede che funzioni bene (almeno nel mio arco) hehehe grazie per il suggerimento

  2.   elav <° Linux suddetto

    Zenity viene utilizzato per altri trucchi, come il motore di ricerca Xfce 😀

  3.   Aaron Mendo suddetto

    Grazie, grazie mille, bene che parli di Gtk + ho anche usato zenity ancora non lo capisco molto bene ma in seguito con le informazioni che hai dato e con la pratica potrei trovarne un pratico utilizzo.

    Saluti.

  4.   Neo61 suddetto

    Ehi da Camaguey (ho una tastiera francese che non mi permette di trovare i due pinticos di u ... hehehe), potresti spiegarmi bene a cosa serve? E sì, tutto questo viene fatto da console? Sarebbe bello se pubblicassi alcune immagini di catture in modo che gli esempi siano illustrati e in questo modo sia meglio quello che intendi

    1.    KZKG ^ Gaara suddetto

      In realtà, questo articolo non è stato scritto da me, ma da un utente di uno dei nostri forum.
      Sì, tutto questo viene fatto da console e ... a cosa serve? Ebbene, è molto semplice: "conoscenza".

    2.    manolox suddetto

      Un esempio di utilizzo che può essere dato a zenity per qualcuno con la tastiera francese.


      #! /bin/bash
      # Un cambiador de teclado

      ACTION=`zenity --width=0 --height=260 --list\
      --title "Selector de setxkbmap" --text "Elige tu teclado"\
      --column "Idioma"\
      "Español"\
      "Francés"\
      "Inglés"\
      "Gringo"\
      "Alemán"`

      if [ -n "${ACTION}" ]; then
      case $ACTION in
      Español)
      setxkbmap es && zenity --info --text "Teclado configurado correctamente a español" || zenity --info --text "Por alguna razón no fue posible cambiar el mapa de teclado."
      ;;
      Francés)
      setxkbmap fr && zenity --info --text "Dicho sea en francés: Teclado configurado correctamente a francés" || zenity --info --text "Por alguna razón no fue posible cambiar el mapa de teclado."
      ;;
      Inglés)
      setxkbmap gb && zenity --info --text "Dicho sea en inglés: Teclado configurado correctamente a inglés" || zenity --info --text "Por alguna razón no fue posible cambiar el mapa de teclado."
      ;;
      Gringo)
      setxkbmap us && zenity --info --text "Dicho sea en Gringo: Teclado configurado correctamente a Gringo" || zenity --info --text "Por alguna razón no fue posible cambiar el mapa de teclado."
      ;;
      Alemán)
      setxkbmap de && zenity --info --text "Dicho sea en alemán: Teclado configurado correctamente a alemán" || zenity --info --text "Por alguna razón no fue posible cambiar el mapa de teclado."
      ;;
      esac
      fi

      1.    manolox suddetto

        Oh che peccato. Copiare e incollare direttamente non funziona perché quando diventa un commento, "non rispetta" le interruzioni di riga dopo ogni barra rovesciata "\".

        Per farlo funzionare, devi cambiare i backslash seguiti da un'interruzione di riga per uno spazio semplice.
        Non lo copio più per non saturare i commenti, ma per intenderci, dalla terza all'ottava riga, entrambe comprese, dovrebbe essere in una sola riga tale che:

        ACTION = `zenity –width = 0 –height = 260 –list –title« Setxkbmap selector »–text« Scegli la tastiera »–colonna« Lingua »« spagnolo »« francese »« inglese »« Gringo »« tedesco »

        1.    Manuale della Fonte suddetto

          Se vuoi condividere il codice nei commenti puoi salvarlo nel file Incolla e incolla l'URL nel tuo commento. 🙂

          1.    manolox suddetto

            Strumento eccellente. Non sapevo esistesse una cosa del genere DesdeLinux.
            La prossima volta che un commento richiede codice, lo userò.
            Grazie per le informazioni. XD

  5.   Neo61 suddetto

    AH ... e se vedi che sto usando Linux è perché li uso entrambi, ma mi interessa entrare bene in Linux

  6.   Santiago suddetto

    Ottimo articolo !! È zenity super utile.

    Lo uso in uno script thunar che ridimensiona le immagini selezionate e con un elenco offro le dimensioni delle immagini standard.

    Auguri !!

  7.   Hyuga_Neji suddetto

    Ho bisogno che tu mi dica dove trovare lo Zenity che perché sto già cercando e non è nel repo che ho…. Quanto sono felice di utilizzare un repository che non scarico da solo ... (Avviso: modalità sarcastica rilevata in questo commento)

  8.   Jose Sales suddetto

    Vediamo cosa ne pensate di questo?
    #! / Bin / bash
    canzone = $ (zenity –width = 360 –height = 320 –title "Launcher" –file-selection –directory $ HOME)
    trova "$ song" -name * .mp3 | sort –random-sort | testa -n 100 | xargs -d '\ n' mpg123
    Devo ancora migliorarlo un po '