Č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
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 Xfce pretraživača 😀
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.
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
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".
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
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 »`
Ako želite podijeliti kod u komentarima, možete ga spremiti u pasta i zalijepite URL u svoj komentar. 🙂
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
AH ... i ako vidite da koristim Linux, to je zato što koristim i jedno i drugo, 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.
Saludos !!
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)
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