Pogosto obiskujem forume v svoji državi ... in iskreno, redko najdem kaj zanimivega. Vendar pa je v enem od teh forumov uporabnik, ki je objavil dve zanimivi objavi o Linuxu in to je prva (ki jo želim deliti z vami):
Praktična uporaba pogovornega okna Zenity
Zenity je nabor grafičnih pogovornih oken, ki jih uporabljajo knjižnice gtk, s tem programom lahko vnašamo podatke, izbiramo seznam nalog, prikazujemo informacije, ki izhajajo iz določenega postopka, med drugim omogočamo prekinitev pred ali med določenim postopkom funkcije.
Zenity je sestavljen iz približno 13 grafičnih pogovornih oken, poglejmo, kaj so to in njihove možne kombinacije:
1- Če nam želite pokazati koledar in izbrati želeni datum (ta datum bo prikazan v številčni obliki, ko bo izbran):
zenity --calendar
2- Vnos besedila (zelo koristno pri zahtevi za podatke ali ime datoteke)
zenity --entry
Pravilno jih združite, da nas prosi za vnos podatkov
zenity --entry --text "Escriba el nombre del archivo"
3- Obvestite nas, da je prišlo do napake
zenity --error --text "Imposible continuar"
4- Izberite datoteko
zenity --file-selection $HOME
Če dodamo to možnost, lahko izberemo več datotek:
--multiple
S tem boste izbrali samo mape
--directory
S tem namesto izbire bomo aktivirali možnost shranjevanja
--save
S tem bomo preprečili prepisovanje obstoječe datoteke:
--confirm-overwrite
5- Pokažite nam določene informacije
zenity --info *text "Información a mostrar"
6- Pokažite nam seznam možnosti in izberite eno ali skupino teh:
zenity --list --column "nombre de columna" "opcion1" "opción2" "opción3" "opción4"
Zdaj, kaj se zgodi, če želimo imeti seznam dejanj za določene datoteke, vendar želimo, da se prikaže ime dejanja, ki se izvede. Da bi to dosegli, moramo uporabiti ti dve možnosti (–skrij vrednost stolpca in vrednost * stolpec za tiskanje), bi izgledala takole:
zenity --hide-column 2 --print-column 2 --list --column "nombre de columna" --column "columna oculta" "nombre1" "comando1" "nombre2" "comando2"
Če želimo hkrati izbrati več dejanj, moramo dodati ti dve možnosti
Besedilo, ki ločuje izbrano zaporedje od drugega (v tem primeru dodamo to »», kar pomeni presledek
--separator=" "
In možnost, ki nam bo omogočila, da hkrati izberemo več dejanj
--multiple
7- Prikažite nam obvestilo v menijski vrstici
zenity *notification *text "Texto deseado"
8- Pokažite nam potek danega procesa:
zenity --progress --pulsate
9- S tem nam bo prikazal vprašanje in lahko se odločimo, ali želimo nadaljevati s postopkom ali ne:
zenity --question --text "Desea Continuar"
10- S tem lahko v konzoli dobimo rezultat zaporedja, kot so seznam iskanja datotek, poizvedbe za pomoč, med drugim:
zenity --text-info zenity --help-all | zenity --text-info
11- To nas lahko obvesti, da je bil postopek prekinjen.
zenity --warning --text "El proceso ha fallado" ls /media/carpeta || zenity --warning --text "No existe el directorio"
12- S tem lahko drsno številko izberemo s pomočjo drsnika:
zenity --scale
Z dodajanjem te možnosti lahko določimo najmanjšo vrednost:
--value 60 --min-value 60
(možnost –value ne sme biti nikoli manjša od * min-value)
S tem izberemo največjo vrednost
--max-value 100
13- S tem nam bo pokazal pogovorno okno, s katerim lahko s tako imenovano kapljico za izbiro barve izberemo želeno barvo in vzamemo barvo z druge strani.
zenity --color-selection --show-palette
Ko bomo videli, katera pogovorna okna so na voljo v tem programu, si oglejmo nekaj praktičnih primerov s temi:
- Poglejmo, kako lahko premešamo pogovorno okno za vnos besedila
z uporabo skripta:
#!/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"
- Poglejmo, kako združiti pogovorno okno številka 12 številskih lestvic:
(To je preprost skript za znižanje kakovosti jpg slik in s tem zmanjšanje prostora, ki ga zaseda na naših diskih)
#!/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%" "$@"
- Poglejmo še en primer, kjer bomo uporabili pogovorno okno za izbiro barve, kjer bomo fotografiji dodali okvir barve, ki smo jo izbrali:
#!/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 "$@"
- Oglejmo si primer s pogovornim oknom s sporočili o napakah:
#!/bin/bash
rm "$@" || zenity --error --text "Imposible de eliminar esto es una carpeta"
Kot lahko vidite, če nekdo poskuša izbrisati mapo, postopek vrne napako, zato se veriga nadaljuje zahvaljujoč || operaterjem.
- Poglejmo zdaj, kaj lahko naredimo s pogovornim oknom številka 6 in izberemo dejanja, ki jih bomo izvedli v določeni datoteki:
#!/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 "$@"
Upoštevajte, da je v ukaznem polju presledek, ker ne dovoljuje, da se besedilo začne z vezajem, zato mora biti ločilo v tem primeru nulo –separator = »».
- Poglejmo še en primer s pogovornim oknom napredka
#!/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
... No to je to.
Upam, da vam lahko prinesem več zanimivih objav.
pozdrav
Edino, za kar sem uporabil zenity, je bilo, ker winetricks prosi, da deluje dobro (vsaj v mojem loku) hehehe hvala za namig
Zenity se uporablja za nekatere druge trike, kot je iskalnik Xfce 😀
Hvala, najlepša hvala, dobro je, da govorite o Gtk +. Tudi jaz sem uporabil zeniteto, še vedno je ne razumem dobro, kasneje pa z informacijami, ki ste jih dali, in s prakso lahko dobim praktično korist.
Lep pozdrav.
Hej iz Camagueya (imam francosko tipkovnico, ki mi ne dovoli najti dveh pintov u ... hehehe), bi mi lahko dobro razložili, čemu to služi? In če vse to naredi konzola? Dobro bi bilo, če bi objavili nekaj slik zajemanja, da bi bili primeri ponazorjeni in tako bolje videti, kaj mislite
Pravzaprav tega članka nisem napisal jaz, ampak uporabnik enega od naših forumov.
Da, vse to naredi konzola in ... čemu služi? No, zelo preprosto je: "znanje."
Primer uporabe, ki jo lahko nekdo, ki ima francosko tipkovnico, dobi zeniteto.
#! /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, kakšna sramota. Kopiranje in lepljenje neposredno ne deluje, ker ko postane komentar, "ne upošteva" prelomov vrstice po vsaki poševnici nazaj "\".
Če želite delati, morate spremeniti poševnice nazaj, ki jim sledi prelom vrstice, za preprost presledek.
Ne kopiram ga več, da ne bi nasičil komentarjev, ampak naj bo jasno, od tretje do osme, vključno z obema, mora biti v eni vrstici, tako da:
AKCIJA = `zenity –width = 0 –height = 260 –list –title« Setxkbmap selector »–besedilo« Izberi tipkovnico »- stolpec« Language »« Spanish »« French »« English »« Gringo »« German »«
Če želite v komentarjih deliti kodo, jo lahko shranite v testenine in prilepite url v svoj komentar. 🙂
Odlično orodje. Nisem vedel, da obstaja kaj takega DesdeLinux.
Ko bom komentar naslednjič zahteval kodo, jo bom uporabil.
Hvala za informacije. XD
AH ... in če vidite, da uporabljam Linux, je to zato, ker uporabljam oboje, vendar me zanima, kako dobro vstopiti v Linux
Zelo dober članek !! Je zelo koristna zenity.
Uporabljam ga v skriptu thunar, ki spreminja velikost izbranih slik, in s seznamom ponudim velikosti standardnih slik.
Lep pozdrav!
Povej mi, kje najti Zenity, ker sem že iskal in ni v repoju, ki ga imam ... Kako vesel sem, da uporabljam repo, ki ga ne prenesem sam ... (opozorilo: v tem komentarju je zaznan sarkastičen način)
Poglejmo, kaj si mislite o tem?
#! / Bin / bash
pesem = $ (zenity -width = 360 -height = 320 –naslov "Launcher" –datoteka-izbor -direktorij $ HOME)
poišči "$ song" -ime * .mp3 | razvrsti –naključno-razvrsti | glava -n 100 | xargs -d '\ n' mpg123
Moram ga še malo izboljšati