Utilizări practice ale casetei de dialog Zenity

Frecventez mult forumurile din țara mea ... și sincer, este rar să găsești ceva interesant. Cu toate acestea, într-unul dintre aceste forumuri, există un utilizator care a realizat două postări interesante despre Linux și acesta este primul (pe care vreau să îl împărtășesc cu dvs.):

Utilizări practice ale casetei de dialog Zenity

Zenity este un set de casete de dialog grafice utilizate de bibliotecile gtk, cu acest program putem introduce date, selecta o listă de sarcini, ne arată informațiile rezultate dintr-un proces dat, ne permite să facem o întrerupere înainte sau în timpul unui anumit proces, printre alte funcții.

Zenity este format din aproximativ 13 casete de dialog grafice, să vedem care sunt acestea și combinațiile posibile ale acestora:

1- Pentru a ne arăta un calendar și pentru a selecta data dorită (această dată va fi afișată în format numeric odată selectată):

zenity --calendar

2- Pentru a introduce text (foarte util atunci când solicitați date sau numele unui fișier)

zenity --entry

Combinați-le corect, astfel încât să ne solicite introducerea datelor

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

3- Pentru a ne informa că a apărut o eroare

zenity --error --text "Imposible continuar"

4- Pentru a selecta un fișier

zenity --file-selection $HOME

Adăugarea acestei opțiuni ne permite să selectăm mai multe fișiere:
--multiple

Cu aceasta veți selecta doar folderele
--directory

Cu aceasta, în loc să selectăm, vom activa opțiunea de salvare
--save

Cu aceasta vom preveni suprascrierea unui fișier existent:
--confirm-overwrite

5- Arată-ne anumite informații

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

6- Arată-ne o listă de opțiuni și selectează una sau un grup dintre acestea:
zenity --list --column "nombre de columna" "opcion1" "opción2" "opción3" "opción4"

Ce se întâmplă acum dacă vrem să avem o listă de acțiuni pentru anumite fișiere, dar dorim să fie afișat numele acțiunii care trebuie efectuată. Pentru a realiza acest lucru, trebuie să folosim aceste două opțiuni (–valoarea ascunde-coloană și * valoarea coloanei de imprimare) ar arăta astfel:

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

Dacă dorim să selectăm mai multe acțiuni odată, trebuie să adăugăm aceste două opțiuni
Text care separă secvența aleasă de cealaltă (în acest caz adăugăm acest »» care înseamnă un spațiu
--separator=" "

Și opțiunea care ne va permite să selectăm mai multe acțiuni odată
--multiple

7- Arată-ne o notificare în bara de meniu

zenity *notification *text "Texto deseado"

8- Arată-ne progresul unui proces dat:
zenity --progress --pulsate

9- Cu aceasta ne va arăta o întrebare și putem alege dacă dorim sau nu să continuăm procesul:

zenity --question --text "Desea Continuar"

10- Cu aceasta putem primi rezultatul unei secvențe în consolă, cum ar fi lista unei căutări de fișiere, interogări de ajutor, printre altele:

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

11- Acest lucru ne poate informa că procesul a fost întrerupt.

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

12- Cu aceasta putem selecta un număr dat prin intermediul unei bare glisante:

zenity --scale

Prin adăugarea acestei opțiuni, putem defini valoarea minimă:
--value 60 --min-value 60
(opțiunea –value nu trebuie să fie niciodată mai mică de * valoarea minimă)

Cu aceasta selectăm valoarea maximă
--max-value 100

13- Cu aceasta ne va arăta o casetă de dialog cu ajutorul căreia putem selecta culoarea dorită și putem lua culoarea din cealaltă parte cu așa-numitul dropper color selector.
zenity --color-selection --show-palette

După ce vedem ce casete de dialog sunt disponibile în acest program, să vedem câteva exemple practice cu acestea:

- Să vedem cum putem amesteca caseta de dialog pentru introducerea textului
folosind un 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"

- Să vedem cum să combinăm caseta de dialog numărul 12 al scărilor numerice:
(Acesta este un script simplu pentru a reduce calitatea imaginilor jpg și a reduce astfel spațiul pe care îl ocupă pe discurile noastre)

#!/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%" "$@"

- Să vedem un alt exemplu în care vom folosi caseta de dialog a selectorului de culoare în care vom adăuga un cadru de culoare pe care îl selectăm unei fotografii:

#!/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 "$@"

- Să vedem un exemplu cu caseta de dialog a mesajelor de eroare:

#!/bin/bash

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

După cum puteți vedea, dacă cineva încearcă să șteargă un folder, procesul returnează o eroare, astfel încât lanțul continuă datorită acestor || operatori.

- Să vedem acum ce putem face cu caseta de dialog numărul 6, selectând acțiunile pe care le vom efectua pe un anumit fișier:

#!/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 "$@"

Rețineți că există un spațiu în caseta de comandă, deoarece nu permite ca textul să înceapă cu o cratimă, prin urmare, în acest caz, delimitatorul trebuie să fie nul –separator = »».

- Să vedem un alt exemplu cu caseta de dialog de progres

#!/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

... Ei bine, asta este.

Sper să vă pot aduce mai multe postări interesante.

În ceea ce priveşte


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   Putreze87 el a spus

    Singurul lucru pentru care am folosit zenity a fost pentru că winetricks cere ca acesta să funcționeze bine (cel puțin în arcada mea) hehehe mulțumesc pentru pont

  2.   elav <° Linux el a spus

    Zenity este folosit pentru alte trucuri, cum ar fi motorul de căutare Xfce 😀

  3.   Aaron Mendo el a spus

    Mulțumesc, mulțumesc foarte mult, bine că vorbești de Gtk + Am folosit și zenity încă nu o înțeleg prea bine dar mai târziu cu informațiile pe care le-ai dat și cu practică s-ar putea să-i găsesc o utilizare practică.

    Salutări.

  4.   Neo61 el a spus

    Hei de la Camaguey (am o tastatură franceză care nu mă lasă să găsesc cei doi pinticos ai u ... hehehe), ai putea explica bine ce este asta pentru mine? Și dacă toate acestea sunt realizate de consolă? Ar fi bine dacă ați posta câteva imagini cu capturi pentru a ilustra exemplele și astfel arata mai bine.

    1.    KZKG ^ Gaara el a spus

      De fapt, acest articol nu a fost scris de mine, ci de un utilizator al unuia dintre forumurile noastre.
      Da, toate acestea sunt făcute de consolă și ... la ce servește? Ei bine, este foarte simplu: „cunoaștere”.

    2.    manolox el a spus

      Un exemplu de utilizare a zenity pentru cineva cu o tastatură franceză.


      #! /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 el a spus

        Oh ce pacat. Copierea și lipirea directă nu funcționează, deoarece atunci când devine un comentariu, „nu respectă” linia se întrerupe după fiecare bară inversă „\”.

        Pentru ca acesta să funcționeze, trebuie să schimbați backslash-urile urmate de o întrerupere de linie pentru un spațiu simplu.
        Nu îl copiez din nou, astfel încât să nu saturăm comentariile, dar pentru a fi clar, de la a treia linie până la a opta, ambele inclusiv, ar trebui să fie într-o singură linie astfel încât:

        ACTION = `zenity –width = 0 –height = 260 –list –title« Setxkbm selector »–text« Alege tastatura »- coloana« Language »« spaniolă »« franceză »« engleză »« Gringo »« germană »

        1.    Manualul Sursei el a spus

          Dacă doriți să partajați codul în comentarii, îl puteți salva în Pastă și lipiți adresa URL în comentariul dvs. 🙂

          1.    manolox el a spus

            Excelente herramienta. No sabía que existía tal cosa en DesdeLinux.
            Data viitoare când un comentariu necesită cod, îl voi folosi.
            Multumesc pentru informatii. XD

  5.   Neo61 el a spus

    AH ... și dacă vedeți că folosesc Linux, este pentru că le folosesc pe amândouă, dar sunt interesat să ajung bine la Linux

  6.   Santiago el a spus

    Foarte bun articol !! Este o zenitate super utilă.

    Îl folosesc într-un script thunar care redimensionează imaginile selectate, iar cu o listă ofer dimensiunile imaginilor standard.

    Salutări!

  7.   Hyuuga_Neji el a spus

    Am nevoie să-mi spui unde să găsesc Zenity pentru că am căutat deja și nu este în repo-ul pe care îl am .... Cât de fericită folosesc o repo pe care nu o descarc eu însumi ... (Alertă: modul sarcastic detectat în acest comentariu)

  8.   Jose Sales el a spus

    Să vedem ce părere aveți despre asta?
    #! / Bin / bash
    melodie = $ (zenity –width = 360 –height = 320 –title „Launcher” –file-selection –directory $ HOME)
    găsiți „$ cântec” -nume * .mp3 | sort –random-sort | cap -n 100 | xargs -d '\ n' mpg123
    Încă trebuie să-l îmbunătățesc puțin