Praktična upotreba Zenity dijaloškog okvira

Č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 Zenity dijaloškog okvira

Zenity je skup grafičkih dijaloških okvira koje koriste gtk biblioteke, s tim programom možemo unositi podatke, odabrati listu zadataka, pokazati nam informacije koje proizlaze iz datog procesa, 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 datum će biti prikazan u numeričkom formatu 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- Obavijestite nas da je došlo do greške

zenity --error --text "Imposible continuar"

4- Za odabir datoteke

zenity --file-selection $HOME

Dodavanjem ove opcije omogućava nam se 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 informacije

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

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

Što ako sada želimo imati listu 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 želimo odabrati više akcija odjednom, moramo dodati ove dvije opcije
Tekst koji odvaja odabrani niz od drugog (u ovom slučaju dodajemo ovo »» što znači razmak
--separator=" "

I opcija koja će nam omogućiti da odaberemo više odjednom akcije
--multiple

7- Pokažite nam obavijest na traci izbornika

zenity *notification *text "Texto deseado"

8- Pokažite nam napredak datog procesa:
zenity --progress --pulsate

9- Ovim ć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 liste 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 ne smije biti manja od * min-vrijednosti)

Ovim odabiremo maksimalnu vrijednost
--max-value 100

13- Uz to će nam pokazati 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:

- Da vidimo kako možemo miješati dijaloški okvir za unos teksta
koristeći skriptu:

#!/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 skala:
(Ovo je jednostavna skripta za smanjenje kvaliteta jpg slika i time 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 koristiti dijaloški okvir za odabir boje gdje ćemo fotografiji dodati okvir boje koji 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 za poruke o greškama:

#!/bin/bash

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

Kao što vidite, ako neko pokuša izbrisati mapu, proces vraća grešku pa se lanac nastavlja zahvaljujući ovim || operaterima.

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

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

Saludos


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  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 obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   rots87 rekao je

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

  2.   elav <° Linux rekao je

    Zenity se koristi za neke druge trikove, poput Xfce pretraživača 😀

  3.   Aaron Mendo rekao je

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

    Pozdrav.

  4.   Neo61 rekao je

    Hej iz Camagueya (imam francusku tastaturu koja mi ne dozvoljava da nađem dva pinta od u ... hehehe), možete li dobro objasniti čemu ovo služi? A ako se sve to radi putem konzole? Bilo bi dobro kada biste objavili neke slike snimanja kako biste ilustrirali primjere i na taj način izgleda bolje ono što mislite

    1.    KZKG ^ Gaara rekao je

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

    2.    manolox rekao je

      Primjer upotrebe koji se može dati zenitetu nekome sa francuskom tastaturom.


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

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

        Da biste to uspjeli, morate promijeniti kose crtice praćene prelomom reda za jednostavan razmak.
        Ne kopiram ga ponovo da ne bih zasitio komentare, ali da budem jasan, od trećeg do osmog, uključujući oba, trebalo bi da bude u jednom retku tako da:

        AKCIJA = `zenity –width = 0 –height = 260 –list –title« Setxkbmapa selector »–text« Select your keyboard »- kolona« Language »« Spanish »« French »« English »« Gringo »« German »`

        1.    Priručnik za izvor rekao je

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

          1.    manolox rekao je

            Odličan alat. Nisam znao da tako nešto postoji DesdeLinux.
            Sljedeći put kad komentar zahtijeva kod, koristit ću ga.
            Hvala na informacijama. XD

  5.   Neo61 rekao je

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

  6.   Santiago rekao je

    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.

    Saludos !!

  7.   Hyuuga_Neji rekao je

    Morate mi reći gdje da pronađem Zenity, jer već tražim, a to 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)

  8.   Jose Sales rekao je

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