Č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
Jedino za što sam koristio zenitet bilo je zato što winetricks traži da dobro djeluje (barem u mom luku) hehehe hvala na savjetu
Zenity se koristi za neke druge trikove, poput tražilice Xfce 😀
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.
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
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".
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
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 »`
Ako želite podijeliti kod u komentarima, možete ga spremiti u tjestenina i zalijepite url u svoj komentar. 🙂
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
AH ... i ako vidite da koristim Linux, to je zato što koristim oboje, ali zanima me ulazak u Linux
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!
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)
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