Често посещавам форумите на моята страна ... и честно казано, рядко се среща нещо интересно. В един от тези форуми обаче има потребител, който е направил две интересни публикации за Linux и това е първата (която искам да споделя с вас):
Практически приложения на диалоговия прозорец Zenity
Zenity е набор от графични диалогови прозорци, използвани от библиотеките на gtk, с тази програма можем да въведем данни, да изберем списък със задачи, да ни покажем информацията, получена от даден процес, да ни позволим да направим прекъсване преди или по време на определен процес, наред с други функции.
Zenity се състои от около 13 графични диалогови прозореца, нека видим какви са те и възможните им комбинации:
1- За да ни покажете календар и да изберете желана дата (тази дата ще бъде показана в цифров формат, след като бъде избрана):
zenity --calendar
2- За въвеждане на текст (много полезно при поискване на данни или име на файл)
zenity --entry
Комбинирайте ги правилно, така че да ни поиска данните за въвеждане
zenity --entry --text "Escriba el nombre del archivo"
3- За да ни информирате, че е възникнала грешка
zenity --error --text "Imposible continuar"
4- За да изберете файл
zenity --file-selection $HOME
Добавянето на тази опция ни позволява да изберем няколко файла:
--multiple
С това ще изберете само папките
--directory
С това, вместо да избираме, ще активираме опцията за запазване
--save
С това ще предотвратим презаписване на съществуващ файл:
--confirm-overwrite
5- Покажете ни определена информация
zenity --info *text "Información a mostrar"
6- Покажете ни списък с опции и изберете една или група от тях:
zenity --list --column "nombre de columna" "opcion1" "opción2" "opción3" "opción4"
Сега какво се случва, ако искаме да имаме списък с действия за определени файлове, но искаме да се показва името на действието, което трябва да се извърши. За да постигнем това, трябва да използваме тези две опции (–hide-column value и * print-column value) тя ще изглежда така:
zenity --hide-column 2 --print-column 2 --list --column "nombre de columna" --column "columna oculta" "nombre1" "comando1" "nombre2" "comando2"
Ако искаме да изберем повече от едно действие наведнъж, трябва да добавим тези две опции
Текст, който разделя избраната последователност от другата (в този случай добавяме това »», което означава интервал
--separator=" "
И опцията, която ще ни позволи да избираме повече от едно действие наведнъж
--multiple
7- Покажете ни известие в лентата с менюта
zenity *notification *text "Texto deseado"
8- Покажете ни напредъка на даден процес:
zenity --progress --pulsate
9- С това ще ни покаже въпрос и ние можем да изберем дали да продължим с процеса или не:
zenity --question --text "Desea Continuar"
10- С това можем да получим резултата от последователност в конзолата, като списък на търсене на файлове, помощни заявки, наред с други:
zenity --text-info zenity --help-all | zenity --text-info
11- Това може да ни информира, че процесът е прекъснат.
zenity --warning --text "El proceso ha fallado" ls /media/carpeta || zenity --warning --text "No existe el directorio"
12- С това можем да изберем даден номер посредством плъзгач:
zenity --scale
Чрез добавяне на тази опция можем да определим минималната стойност:
--value 60 --min-value 60
(опцията –value никога не трябва да бъде по-малка от * мин-стойност)
С това избираме максималната стойност
--max-value 100
13- С това ще ни покаже диалогов прозорец, с който можем да изберем желания цвят и да вземем цвета от другата страна с така наречената капкомер за избор на цвят.
zenity --color-selection --show-palette
След като видим кои диалогови прозорци са налични в тази програма, нека видим някои практически примери с тях:
- Да видим как можем да смесим диалоговия прозорец за въвеждане на текст
с помощта на скрипт:
#!/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"
- Да видим как да комбинираме диалоговия прозорец номер 12 от числови скали:
(Това е прост скрипт за понижаване на качеството на jpg изображения и по този начин намаляване на мястото, което заема на нашите дискове)
#!/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%" "$@"
- Да видим друг пример, където ще използваме диалоговия прозорец за избор на цвят, където ще добавим рамка от цвета, който сме избрали, към снимка:
#!/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 "$@"
- Да видим пример с диалоговия прозорец за съобщения за грешки:
#!/bin/bash
rm "$@" || zenity --error --text "Imposible de eliminar esto es una carpeta"
Както можете да видите, ако някой се опита да изтрие папка, процесът връща грешка, така че веригата продължава благодарение на тези || оператори.
- Нека видим сега какво можем да направим с диалоговия прозорец номер 6, като изберем действията, които ще извършим върху определен файл:
#!/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 "$@"
Обърнете внимание, че в командното поле има интервал, тъй като той не позволява на текста да започва с тире, следователно разделителят в този случай трябва да бъде null –separator = »».
- Да видим друг пример с диалоговия прозорец за напредъка
#!/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
... Ами това е.
Надявам се да ви донеса още публикации, които са интересни.
поздрави
Единственото нещо, за което използвах зенита, беше, защото winetricks иска той да работи добре (поне в моята арка) хехехе благодаря за съвет
Zenity се използва за някои други трикове, като търсачката Xfce 😀
Благодаря, много благодаря, добре, че говорите за Gtk +, аз също използвах зенитност, все още не го разбирам много добре, но по-късно с информацията, която дадохте и с практика може да намеря практическа полза за нея.
Поздрави.
Хей от Камагуей (имам френска клавиатура, която не ми позволява да намеря двете пинтики на u ... хехехе), бихте ли обяснили добре какво е това за мен? И ако всичко това се прави с конзола? Би било добре, ако публикувате няколко изображения на заснемания, за да илюстрирате примерите и по този начин изглежда по-добре това, което имате предвид
Всъщност тази статия не е написана от мен, а от потребител на един от нашите форуми.
Да, всичко това се прави от конзолата и ... за какво е? Е, това е много просто: „знание“.
Пример за това как да се използва зенит за някой с френска клавиатура.
#! /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
О, какъв срам. Копирането и поставянето директно не работи, защото когато се превърне в коментар, той "не уважава" реда се прекъсва след всяка обратна наклонена черта "\".
За да работи, трябва да смените обратните наклонени черти, последвани от прекъсване на редове, за просто интервал.
Не го копирам отново, за да не наситя коментарите, но за да бъде ясно, от третия до осмия ред, включително и двата, той трябва да бъде в един ред, така че:
ACTION = `zenity –width = 0 –height = 260 –list –title« Setxkbmama selector »–text« Изберете вашата клавиатура »–колона« Език »« испански »« френски »« английски »« Gringo »« немски »«
Ако искате да споделите код в коментарите, можете да го запазите в Паста и поставете URL адреса във вашия коментар. 🙂
Excelente herramienta. No sabía que existía tal cosa en DesdeLinux.
Следващият път, когато коментарът изисква код, ще го използвам.
Благодаря за информацията. XD
АХ ... и ако видите, че използвам Linux, това е така, защото използвам и двете, но ми е интересно да вляза добре в Linux
Много добра статия !! Това е супер полезен дух.
Използвам го в тунарен скрипт, който преоразмерява избраните изображения, и със списък предлагам размерите на стандартните изображения.
Поздрави!
Трябва да ми кажете къде да намеря Zenity, тъй като вече търсих и не е в репото, което имам ... Колко щастлив съм, че използвам репо, че не се изтегля сам ... (Предупреждение: Саркастичен режим, открит в този коментар)
Нека да видим какво мислите за това?
#! / Хамбар / Баш
song = $ (zenity –width = 360 –height = 320 –заглавие „Launcher“ –file-selection –directory $ HOME)
намери "$ song" -name * .mp3 | сортиране –случайно сортиране | глава -n 100 | xargs -d '\ n' mpg123
Все още трябва да го подобря малко