Aš dažnai lankau savo šalies forumus ... ir, tiesą sakant, retai galima rasti ką nors įdomaus. Tačiau viename iš šių forumų yra vartotojas, parašęs du įdomius įrašus apie „Linux“, ir tai yra pirmasis (kuriuo noriu pasidalinti su jumis):
Dialogo lango „Zenity“ praktinis naudojimas
„Zenity“ yra grafinių dialogo langų rinkinys, kurį naudoja „gtk“ bibliotekos, naudodamiesi šia programa galime įvesti duomenis, pasirinkti užduočių sąrašą, parodyti mums informaciją, gautą iš duoto proceso, leisti pertraukti prieš tam tikrą procesą arba jo metu, be kitų funkcijų.
„Zenity“ susideda iš maždaug 13 grafinių dialogo langų, pažiūrėkime, kas tai yra ir galimi jų deriniai:
1- Norėdami parodyti mums kalendorių ir pasirinkti norimą datą (pasirinkus šią datą, ji bus rodoma skaitmeniniu formatu):
zenity --calendar
2- Įvesti tekstą (labai naudinga prašant duomenų ar failo pavadinimo)
zenity --entry
Sujunkite juos teisingai, kad jis paprašytų mūsų įvesti duomenis
zenity --entry --text "Escriba el nombre del archivo"
3- Pranešti mums, kad įvyko klaida
zenity --error --text "Imposible continuar"
4- Norėdami pasirinkti failą
zenity --file-selection $HOME
Pridėję šią parinktį galime pasirinkti kelis failus:
--multiple
Su tuo pasirinksite tik aplankus
--directory
Tai užuot pasirinkę, suaktyvinsime išsaugojimo parinktį
--save
Tai neleisime perrašyti esamo failo:
--confirm-overwrite
5- Parodykite mums tam tikrą informaciją
zenity --info *text "Información a mostrar"
6- Parodykite mums variantų sąrašą ir pasirinkite vieną arba jų grupę:
zenity --list --column "nombre de columna" "opcion1" "opción2" "opción3" "opción4"
Dabar kas atsitiks, jei norime turėti tam tikrų failų veiksmų sąrašą, bet norime, kad būtų rodomas atlikto veiksmo pavadinimas. Norėdami tai pasiekti, turime naudoti šias dvi parinktis (slėpti stulpelio vertę ir * spausdinti stulpelio vertę), tai atrodys taip:
zenity --hide-column 2 --print-column 2 --list --column "nombre de columna" --column "columna oculta" "nombre1" "comando1" "nombre2" "comando2"
Jei norime pasirinkti daugiau nei vieną veiksmą vienu metu, turime pridėti šias dvi parinktis
Tekstas, kuris skirs pasirinktą seką nuo kitos (šiuo atveju pridedame šį »», kuris reiškia tarpą
--separator=" "
Ir variantas, kuris leis mums pasirinkti daugiau nei vieną veiksmą vienu metu
--multiple
7- Parodykite mums pranešimą meniu juostoje
zenity *notification *text "Texto deseado"
8- Parodykite mums konkretaus proceso pažangą:
zenity --progress --pulsate
9- Tai parodys mums klausimą ir galėsime pasirinkti, ar norime tęsti procesą:
zenity --question --text "Desea Continuar"
10- Tokiu būdu konsolėje galime gauti sekos rezultatus, pvz., Failų paieškos sąrašą, pagalbos užklausas, be kita ko:
zenity --text-info zenity --help-all | zenity --text-info
11- Tai gali mums pranešti, kad procesas buvo nutrauktas.
zenity --warning --text "El proceso ha fallado" ls /media/carpeta || zenity --warning --text "No existe el directorio"
12- Tokiu būdu mes galime pasirinkti nurodytą skaičių naudodami slankiklį:
zenity --scale
Pridėdami šią parinktį, mes galime apibrėžti mažiausią vertę:
--value 60 --min-value 60
(„value“ parinktis niekada neturėtų būti mažesnė nei * min. vertė)
Tuo mes pasirenkame didžiausią vertę
--max-value 100
13- Tai mums parodys dialogo langą, kuriame mes galime pasirinkti norimą spalvą ir paimti spalvą iš kitos pusės vadinamuoju spalvų parinkiklio lašintuvu.
zenity --color-selection --show-palette
Pamatę, kurie dialogo langai yra šioje programoje, pažiūrėkime keletą praktinių pavyzdžių:
- Pažiūrėkime, kaip galime sumaišyti teksto įvesties dialogo langą
naudojant scenarijų:
#!/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"
- Pažiūrėkime, kaip sujungti skaitmeninių skalių dialogo lango numerį 12:
(Tai paprastas scenarijus, skirtas sumažinti JPG vaizdų kokybę ir taip sumažinti vietą, kurią jis užima mūsų diskuose)
#!/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%" "$@"
- Pažiūrėkime dar vieną pavyzdį, kuriame naudosime spalvų parinkiklio dialogo langą, kuriame nuotraukai pridėsime pasirinktos spalvos rėmelį:
#!/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 "$@"
- Pažiūrėkime pavyzdį su klaidos pranešimų dialogo langu:
#!/bin/bash
rm "$@" || zenity --error --text "Imposible de eliminar esto es una carpeta"
Kaip matote, jei kas nors bando ištrinti aplanką, procesas pateikia klaidą, todėl grandinė tęsiasi šių || operatorių dėka.
- Pažiūrėkime, ką galime padaryti naudodami dialogo langą 6, pasirinkdami veiksmus, kuriuos atliksime tam tikrame faile:
#!/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 "$@"
Atkreipkite dėmesį, kad komandų laukelyje yra tarpas, nes jis neleidžia tekstui prasidėti brūkšneliu, todėl šiuo atveju skiriklis turi būti nulinis –separator = »».
- Pažiūrėkime dar vieną pavyzdį su dialogo langu „Pažanga“
#!/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
… Na ir štai.
Tikiuosi, kad galėsiu pateikti daugiau įdomių pranešimų.
saludos
13 komentarai, palikite savo
Vienintelis dalykas, dėl kurio aš panaudojau muziką, buvo tai, kad vynuogininkės prašo, kad jis gerai veiktų (bent jau mano arkoje) hehehe ačiū už patarimą
„Zenity“ naudojamas kai kuriems kitiems triukams, pvz., „Xfce“ paieškos varikliui 😀
Ačiū, ačiū jums labai, gerai, kad jūs kalbate apie „Gtk +“. Aš taip pat naudojau „zenity“, aš vis dar nesuprantu to gerai, bet vėliau naudodamasis jūsų pateikta informacija ir praktikoje galiu rasti praktinį jos panaudojimą.
Sveikinimai.
Ei iš Camaguey (aš turiu prancūzišką klaviatūrą, kuri neleis man rasti dviejų u ... hehehe pinticų), gal galėtumėte gerai paaiškinti, kas tai yra man? Ir jei visa tai daroma konsole? Būtų gerai, jei paskelbtumėte keletą užfiksuotų vaizdų, kad pavyzdžiai būtų iliustruoti ir taip atrodytų geriau, ką norite pasakyti
Tiesą sakant, šį straipsnį parašiau ne aš, o vieno iš mūsų forumų vartotojas.
Taip, visa tai daroma konsole, ir ... kam ji skirta? Na, tai labai paprasta: „žinios“.
Naudojimo pavyzdys, kurį galima suteikti muzikinumui prancūzų klaviatūra.
#! /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
Oi, kokia gėda. Tiesioginis kopijavimas ir įklijavimas neveikia, nes kai jis tampa komentaru, jis "negerbia" eilutės pertraukos po kiekvieno atgalinio brūkšnio "\".
Kad jis veiktų, turite pakeisti atgalinį brūkšnį, po kurio eina eilutė, kad būtų paprasta erdvė.
Aš nekopijuoju jo dar kartą, kad neprisotinčiau komentarų, bet kad būtų aišku, nuo trečios iki aštuntos eilutės, abi, imtinai, tai turėtų būti viena eilutė, kad
ACTION = `zenity –width = 0 –height = 260 –list –title« Setxkbmap selector »–text« Pasirinkite klaviatūrą »–stulpelis« Kalba »« Ispanų »« Prancūzų »« Anglų »« Gringo »« Vokiečių »"
Jei norite bendrinti kodą komentaruose, galite jį išsaugoti Įklijuoti ir įklijuokite URL į savo komentarą. 🙂
Puiki priemonė. Aš nežinojau, kad „DesdeLinux“ yra toks dalykas.
Kitą kartą, kai komentarui reikės kodo, jį naudosiu.
Ačiū už informaciją. XD
AH ... ir jei matote, kad aš naudoju „Linux“, tai yra todėl, kad aš naudoju abu, bet man įdomu gerai įsitraukti į „Linux“
Labai geras straipsnis !! Tai labai naudinga muzika.
Aš jį naudoju tunariniame scenarijuje, kuris keičia pasirinktų vaizdų dydį, ir pateikdamas sąrašą, aš siūlau standartinių vaizdų dydžius.
Sveiki atvykę!
Man reikia, kad jūs man pasakytumėte, kur rasti „Zenity“, nes aš jau ieškojau ir jo nėra mano turimame atpirkimo sandėlyje. Kaip džiaugiuosi naudodamasis atpirkimu, kurio pats neatsisiųsiu ... (Įspėjimas: šiame komentare aptiktas sarkastiškas režimas)
Pažiūrėkime, ką tu galvoji apie tai?
#! / bin / bash
daina = $ (zenity - plotis = 360 - aukštis = 320 - pavadinimas „Paleidimo priemonė“ - failo pasirinkimas - katalogas „HOME“)
rasti „$ song“ -name * .mp3 | rūšiuoti - atsitiktinai rūšiuoti | galva -n 100 | xargs -d '\ n' mpg123
Man dar reikia šiek tiek ją patobulinti