Často navštěvuji fóra v mé zemi ... a upřímně, je vzácné najít něco zajímavého. Na jednom z těchto fór však existuje uživatel, který vytvořil dva zajímavé příspěvky o Linuxu, a toto je první (o který se s vámi chci podělit):
Praktické využití dialogového okna Zenity
Zenity je sada grafických dialogových oken používaných knihovnami gtk, s tímto programem můžeme zadávat data, vybírat seznam úkolů, ukazovat nám informace vyplývající z daného procesu, umožnit nám přerušení před nebo během určitého procesu, mimo jiné funkce.
Zenity se skládá z přibližně 13 grafických dialogových oken, podívejme se, co to je a jejich možné kombinace:
1- Chcete-li nám ukázat kalendář a vybrat požadované datum (toto datum se po výběru zobrazí v číselném formátu):
zenity --calendar
2- Zadávání textu (velmi užitečné při požadavku na data nebo název souboru)
zenity --entry
Zkombinujte je správně, aby nás požádalo o zadání údajů
zenity --entry --text "Escriba el nombre del archivo"
3- Informovat nás, že došlo k chybě
zenity --error --text "Imposible continuar"
4- Výběr souboru
zenity --file-selection $HOME
Přidání této možnosti nám umožňuje vybrat několik souborů:
--multiple
Tímto způsobem vyberete pouze složky
--directory
S tímto namísto výběru budeme aktivovat možnost uložení
--save
Tím zabráníme přepsání existujícího souboru:
--confirm-overwrite
5- Ukažte nám určité informace
zenity --info *text "Información a mostrar"
6- Ukažte nám seznam možností a vyberte jednu nebo skupinu z těchto:
zenity --list --column "nombre de columna" "opcion1" "opción2" "opción3" "opción4"
Co se stane, pokud chceme mít seznam akcí pro určité soubory, ale chceme, aby se zobrazil název akce, která má být provedena. Abychom toho dosáhli, musíme použít tyto dvě možnosti (–skrytí hodnoty sloupce a * hodnota sloupce tisku), vypadalo by to takto:
zenity --hide-column 2 --print-column 2 --list --column "nombre de columna" --column "columna oculta" "nombre1" "comando1" "nombre2" "comando2"
Pokud chceme vybrat více než jednu akci najednou, musíme přidat tyto dvě možnosti
Text, který oddělí vybranou sekvenci od druhé (v tomto případě přidáme toto »», což znamená mezeru
--separator=" "
A možnost, která nám umožní vybrat více než jednu akci najednou
--multiple
7- Ukažte nám oznámení na liště nabídek
zenity *notification *text "Texto deseado"
8- Ukažte nám postup daného procesu:
zenity --progress --pulsate
9- S tímto nám ukáže otázku a můžeme si vybrat, zda chceme v procesu pokračovat nebo ne:
zenity --question --text "Desea Continuar"
10- Díky tomu můžeme v konzole obdržet výsledek sekvence, například seznam hledání souborů, dotazy nápovědy, mimo jiné:
zenity --text-info zenity --help-all | zenity --text-info
11- To nás může informovat, že proces byl přerušen.
zenity --warning --text "El proceso ha fallado" ls /media/carpeta || zenity --warning --text "No existe el directorio"
12- Tímto způsobem můžeme vybrat dané číslo pomocí posuvníku:
zenity --scale
Přidáním této možnosti můžeme definovat minimální hodnotu:
--value 60 --min-value 60
(volba –hodnota by nikdy neměla být menší než * min. hodnota)
Tím vybereme maximální hodnotu
--max-value 100
13- Tímto způsobem se nám zobrazí dialogové okno, pomocí kterého můžeme vybrat požadovanou barvu a vzít barvu z druhé strany pomocí takzvaného kapátka pro výběr barvy.
zenity --color-selection --show-palette
Poté, co se podíváme, která dialogová okna jsou k dispozici v tomto programu, se podívejme na některé praktické příklady:
- Podívejme se, jak můžeme kombinovat dialogové okno pro zadávání textu
pomocí 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"
- Podívejme se, jak kombinovat dialogové okno číslo 12 číselných stupnic:
(Toto je jednoduchý skript ke snížení kvality obrázků jpg a tím ke zmenšení prostoru, který zabírá na našich discích)
#!/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%" "$@"
- Podívejme se na další příklad, kde použijeme dialogové okno pro výběr barvy, kde do fotografie přidáme rámeček barvy, kterou vybereme:
#!/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 "$@"
- Podívejme se na příklad s dialogovým oknem chybových zpráv:
#!/bin/bash
rm "$@" || zenity --error --text "Imposible de eliminar esto es una carpeta"
Jak vidíte, pokud se někdo pokusí odstranit složku, proces vrátí chybu, takže řetězec díky těmto || operátorům pokračuje.
- Podívejme se nyní, co můžeme dělat s dialogovým oknem číslo 6, výběrem akcí, které provedeme u určitého souboru:
#!/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 "$@"
Všimněte si, že v příkazovém poli je mezera, protože neumožňuje, aby text začínal pomlčkou, proto oddělovač v tomto případě musí být null –separator = »».
- Podívejme se na další příklad s dialogovým oknem postupu
#!/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 ono.
Doufám, že vám mohu přinést více zajímavých příspěvků.
pozdravy
Jedinou věc, pro kterou jsem použil zenity, bylo, že winetricks požaduje, aby to fungovalo dobře (alespoň v mém oblouku), hehehe díky za tip
Zenity se používá pro některé další triky, například pro vyhledávač Xfce 😀
Děkuji, moc vám děkuji, dobře, že mluvíte o Gtk + Také jsem použil zenity, stále tomu moc dobře nerozumím, ale později s informacemi, které jste poskytli, as praxí mohu najít praktické využití.
Zdravím.
Hey from Camaguey (I have a French keyboard that doesn't let me find the two pinticos of the u ... hehehe), could you vysvětlit mi dobře, k čemu je to užitečné? A ano, to vše se děje pomocí konzoly? Bylo by dobré, kdybyste zveřejnili nějaké obrázky zachycených snímků, aby byly ilustrovány příklady a aby to vypadalo lépe, co tím myslíte
Ve skutečnosti tento článek nenapsal já, ale uživatel jednoho z našich fór.
Ano, to vše provádí konzole a ... k čemu to je? Je to velmi jednoduché: „znalosti“.
Příklad použití, které lze dát zenity pro někoho s francouzskou klávesnicí.
#! /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
Jaká škoda. Přímé kopírování a vkládání nefunguje, protože když se stane komentářem, „nerespektuje“ zalomení řádku po každém zpětném lomítku „\“.
Aby to fungovalo, musíte pro jednoduché místo změnit zpětná lomítka následovaná zalomením řádku.
Nekopíruji to znovu, aby nedošlo k nasycení komentářů, ale aby bylo jasné, od třetího řádku k osmému, včetně, měl by být v jednom řádku tak, aby:
ACTION = `zenity –width = 0 –height = 260 –list –title« Setxkbmap selector »–text« Vyberte si klávesnici »–sloupec« Jazyk »« Španělština »« Francouzština »« Angličtina »« Gringo »« Němčina »`
Pokud chcete sdílet kód v komentářích, můžete jej uložit do složky Pasta a vložte adresu URL do svého komentáře. 🙂
Vynikající nástroj. Nevěděl jsem, že něco takového existuje DesdeLinux.
Až komentář příště vyžaduje kód, použiji jej.
Děkuji za informaci. XD
AH ... a pokud vidíte, že používám Linux, je to proto, že používám oba, ale mám zájem se v Linuxu dobře zorientovat
Velmi dobrý článek !! Je to velmi užitečná zenity.
Používám to v thunar skriptu, který mění velikost vybraných obrázků, a se seznamem nabízím velikosti standardních obrázků.
Zdravím !!
Potřebuji, abys mi řekl, kde najít Zenity, protože už se dívám a není v repo, které mám ... Jak rád používám repo, které si sám nestáhnu ... (Upozornění: V tomto komentáři byl zjištěn sarkastický režim)
Uvidíme, co si o tom myslíte?
#! / bin / bash
song = $ (zenity –width = 360 –height = 320 –titul „Launcher“ –výběr souboru –adresář $ HOME)
najít "$ song" -name * .mp3 | třídit –hodně třídit | hlava -n 100 | xargs -d '\ n' mpg123
Stále to potřebuji trochu vylepšit