Praktična upotreba dijaloškog okvira Zenity

Često posjećujem forume svoje zemlje ... i iskreno, rijetko se može pronaći nešto zanimljivo. Međutim, na jednom od tih foruma postoji korisnik koji je objavio dva zanimljiva posta o Linuxu, a ovo je prvi (koji želim podijeliti s vama):

Praktična upotreba dijaloškog okvira Zenity

Zenity je skup grafičkih dijaloških okvira koje koriste gtk knjižnice, s tim programom možemo unositi podatke, odabrati popis zadataka, pokazati nam podatke koji proizlaze iz određenog postupka, omogućiti nam da napravimo prekid prije ili tijekom određenog procesa, između ostalih funkcija.

Zenity se sastoji od oko 13 grafičkih dijaloških okvira, pogledajmo što su to i njihove moguće kombinacije:

1- Da biste nam pokazali kalendar i odabrali željeni datum (ovaj će se datum prikazati u numeričkom obliku nakon odabira):

zenity --calendar

2- Za unos teksta (vrlo korisno kada se traže podaci ili ime datoteke)

zenity --entry

Pravilno ih kombinirajte tako da traži da unesemo podatke

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

3- Obavijestiti nas da je došlo do pogreške

zenity --error --text "Imposible continuar"

4- Za odabir datoteke

zenity --file-selection $HOME

Dodavanjem ove opcije omogućuje nam odabir nekoliko datoteka:
--multiple

Ovim ćete odabrati samo mape
--directory

Ovim ćemo umjesto odabira aktivirati opciju spremanja
--save

Ovim ćemo spriječiti prepisivanje postojeće datoteke:
--confirm-overwrite

5- Pokažite nam određene podatke

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

6- Pokažite nam popis opcija i odaberite jednu ili skupinu od njih:
zenity --list --column "nombre de columna" "opcion1" "opción2" "opción3" "opción4"

Što se sada događa ako želimo imati popis radnji za određene datoteke, ali želimo da se prikaže naziv radnje koja se izvodi. Da bismo to postigli moramo koristiti ove dvije opcije (–skrij vrijednost stupca i * vrijednost ispisa stupca) to bi izgledalo ovako:

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

Ako istodobno želimo odabrati više radnji, moramo dodati ove dvije mogućnosti
Tekst koji će odabrani slijed odvojiti od drugog (u ovom slučaju dodajemo ovo »» što znači razmak
--separator=" "

I opcija koja će nam omogućiti da istovremeno odaberemo više radnji
--multiple

7- Pokažite nam obavijest na traci izbornika

zenity *notification *text "Texto deseado"

8- Pokažite nam napredak određenog procesa:
zenity --progress --pulsate

9- Ovime će nam pokazati pitanje i mi možemo odabrati želimo li nastaviti postupak:

zenity --question --text "Desea Continuar"

10- Ovim možemo dobiti rezultat niza u konzoli, poput popisa pretraživanja datoteka, upita za pomoć, između ostalog:

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

11- To nas može obavijestiti da je postupak prekinut.

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

12- Ovim pomoću klizača možemo odabrati zadani broj:

zenity --scale

Dodavanjem ove opcije možemo definirati minimalnu vrijednost:
--value 60 --min-value 60
(opcija –value nikad ne smije biti manja od * min-value)

Ovim odabiremo maksimalnu vrijednost
--max-value 100

13- Ovim će nam se prikazati dijaloški okvir pomoću kojeg možemo odabrati željenu boju i uzeti boju s druge strane pomoću takozvane kapaljke za odabir boje.
zenity --color-selection --show-palette

Nakon što vidimo koji su dijaloški okviri dostupni u ovom programu, pogledajmo nekoliko praktičnih primjera s njima:

- Pogledajmo kako možemo kombinirati dijaloški okvir za unos teksta
pomoću skripte:

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

- Pogledajmo kako kombinirati dijaloški okvir broj 12 numeričkih ljestvica:
(Ovo je jednostavna skripta za smanjenje kvalitete jpg slika i na taj način smanjenje prostora koji zauzima na našim diskovima)

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

- Pogledajmo još jedan primjer gdje ćemo upotrijebiti dijaloški okvir za odabir boje gdje ćemo fotografiji dodati okvir boje koju odaberemo:

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

- Pogledajmo primjer s dijaloškim okvirom poruka o pogreškama:

#!/bin/bash

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

Kao što vidite, ako netko pokuša izbrisati mapu, postupak vraća pogrešku pa se lanac nastavlja zahvaljujući tim || operaterima.

- Pogledajmo sada što možemo učiniti s dijaloškim okvirom broj 6, odabirom radnji koje ćemo izvršiti nad određenom datotekom:

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

Imajte na umu da u naredbenom polju postoji razmak jer on ne dopušta da tekst započinje crticom, stoga graničnik u ovom slučaju mora biti null –separator = »».

- Pogledajmo još jedan primjer s dijaloškim okvirom napretka

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

... Pa to je to.

Nadam se da ću vam donijeti još zanimljivih postova.

pozdravi


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

      Truleži87 dijo

    Jedino za što sam koristio zenitet bilo je zato što winetricks traži da dobro djeluje (barem u mom luku) hehehe hvala na savjetu

      elav <° Linux dijo

    Zenity se koristi za neke druge trikove, poput tražilice Xfce 😀

      Aaron Mendo dijo

    Hvala vam, puno vam hvala, dobro što govorite o Gtk +, također sam koristio zenitet, još uvijek ga ne razumijem dobro, ali kasnije s informacijama koje ste dali i s praksom ću im možda naći praktičnu upotrebu.

    Pozdrav.

      Neo61 dijo

    Hej iz Camagueya (imam francusku tipkovnicu koja mi ne dopušta da nađem dva pinta u ... hehehe), možete li mi dobro objasniti što je ovo za mene? A ako se sve to radi konzolom? Bilo bi dobro kada biste objavili neke slike snimanja kako biste ilustrirali primjere i na taj način izgleda bolje što mislite

         KZKG ^ Gaara dijo

      Zapravo, ovaj članak nisam napisao ja, već korisnik jednog od naših foruma.
      Da, sve se to radi putem konzole i ... čemu služi? Pa, vrlo je jednostavno: "znanje".

         manoloks dijo

      Primjer uporabe koji se može dati zenitetu nekome s francuskom tipkovnicom.


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

           manoloks dijo

        Oh, kakva sramota. Kopiranje i lijepljenje izravno ne radi, jer kad postane komentar, "ne poštuje" redak koji se prekida nakon svake nagnute crte "\".

        Da bi to uspjelo, morate promijeniti kose crte nakon kojih slijedi prekid retka za jednostavan prostor.
        Ne kopiram ga ponovno kako ne bih zasitio komentare, ali da budem jasan, od trećeg do osmog, uključujući oba, trebao bi biti u jednom retku tako da:

        AKCIJA = `zenity –width = 0 –height = 260 –list –title« Setxkbmapa selector »–text« Odaberite tipkovnicu »- stupac« Language »« Spanish »« French »« English »« Gringo »« German »`

             Priručnik o izvoru dijo

          Ako želite podijeliti kod u komentarima, možete ga spremiti u tjestenina i zalijepite url u svoj komentar. 🙂

               manoloks dijo

            Izvrsno sredstvo. Nisam znao da tako nešto postoji u DesdeLinuxu.
            Sljedeći put kad komentar zahtijeva kod, koristit ću ga.
            Hvala na informaciji. XD

      Neo61 dijo

    AH ... i ako vidite da koristim Linux, to je zato što koristim oboje, ali zanima me ulazak u Linux

      Santiago dijo

    Vrlo dobar članak !! To je super korisna zenitet.

    Koristim ga u skripti za thunar koja mijenja veličinu odabranih slika, a s popisom nudim veličine standardnih slika.

    Pozdrav!

      Hyuuga_Neji dijo

    Morate mi reći gdje da pronađem Zenity, jer jer sam već pretraživao i nije u repo-u koji imam ... Koliko sam sretan što koristim repo, a da se sam ne preuzmem ... (Upozorenje: Sarkastičan način otkriven u ovom komentaru)

      Jose Sales dijo

    Da vidimo što mislite o ovome?
    #! / bin / bash
    pjesma = $ (zenity - širina = 360 - visina = 320 - naslov "Pokretač" - odabir datoteke - direktorij $ HOME)
    pronađi "$ song" -ime * .mp3 | sortiraj –naključno-sortiraj | glava -n 100 | xargs -d '\ n' mpg123
    Moram ga još malo poboljšati