Veľa navštevujem fóra svojej krajiny ... a úprimne, je zriedkavé nájsť niečo zaujímavé. Na jednom z týchto fór sa však nachádza používateľ, ktorý uverejnil dva zaujímavé príspevky o systéme Linux, a toto je prvý (o ktorý sa s vami chcem podeliť):
Praktické využitie dialógového okna Zenity
Zenity je sada grafických dialógových okien, ktoré používajú knižnice gtk, pomocou tohto programu môžeme zadávať údaje, vyberať zoznam úloh, zobrazovať nám informácie vyplývajúce z daného procesu, umožniť nám prerušenie pred alebo počas určitého procesu, okrem iných funkcií.
Zenity pozostáva z približne 13 grafických dialógových okien, pozrime sa, čo to je a ich možné kombinácie:
1- Ak nám chcete zobraziť kalendár a zvoliť požadovaný dátum (tento dátum sa po vybratí zobrazí v číselnom formáte):
zenity --calendar
2- Zadávanie textu (veľmi užitočné pri vyžiadaní údajov alebo názvu súboru)
zenity --entry
Správne ich skombinujte, aby od nás vyžadovala zadanie údajov
zenity --entry --text "Escriba el nombre del archivo"
3- Informujeme nás, že došlo k chybe
zenity --error --text "Imposible continuar"
4- Vyberte súbor
zenity --file-selection $HOME
Pridanie tejto možnosti nám umožňuje vybrať niekoľko súborov:
--multiple
Týmto vyberiete iba priečinky
--directory
Týmto namiesto výberu aktivujeme možnosť uloženia
--save
Týmto zabránime prepísaniu existujúceho súboru:
--confirm-overwrite
5- Ukážte nám určité informácie
zenity --info *text "Información a mostrar"
6- Ukážte nám zoznam možností a vyberte jednu alebo skupinu z týchto možností:
zenity --list --column "nombre de columna" "opcion1" "opción2" "opción3" "opción4"
Čo teraz, keď chceme mať zoznam akcií pre určité súbory, ale chceme, aby sa zobrazil názov akcie, ktorá sa má vykonať. Aby sme to dosiahli, musíme použiť tieto dve možnosti (–skryť hodnotu stĺpca a * hodnotu stĺpca tlače), vyzeralo by to takto:
zenity --hide-column 2 --print-column 2 --list --column "nombre de columna" --column "columna oculta" "nombre1" "comando1" "nombre2" "comando2"
Ak chceme vybrať viac ako jednu akciu súčasne, musíme pridať tieto dve možnosti
Text, ktorý oddelí zvolenú postupnosť od druhej (v tomto prípade pridáme toto »», čo znamená medzeru
--separator=" "
A možnosť, ktorá nám umožní zvoliť viac ako jednu akciu súčasne
--multiple
7- Ukážte nám upozornenie na paneli s ponukami
zenity *notification *text "Texto deseado"
8- Ukážte nám pokrok v danom procese:
zenity --progress --pulsate
9- Týmto nám ukáže otázku a my si môžeme zvoliť, či chceme alebo nebudeme pokračovať v procese:
zenity --question --text "Desea Continuar"
10- Vďaka tomu môžeme v konzole získať výsledok postupnosti, ako je napríklad zoznam hľadania súborov, pomocné dotazy, okrem iného:
zenity --text-info zenity --help-all | zenity --text-info
11- To nás môže informovať, že proces bol prerušený.
zenity --warning --text "El proceso ha fallado" ls /media/carpeta || zenity --warning --text "No existe el directorio"
12- Týmto môžeme pomocou posuvnej lišty zvoliť dané číslo:
zenity --scale
Pridaním tejto možnosti môžeme definovať minimálnu hodnotu:
--value 60 --min-value 60
(možnosť –hodnota by nikdy nemala byť menšia ako * minimálna hodnota)
Týmto vyberieme maximálnu hodnotu
--max-value 100
13- Týmto nám zobrazí dialógové okno, pomocou ktorého môžeme zvoliť požadovanú farbu a pomocou takzvaného kvapkadla na výber farby prevziať farbu z druhej strany.
zenity --color-selection --show-palette
Po zistení, ktoré dialógové okná sú dostupné v tomto programe, si ukážeme niekoľko praktických príkladov s týmito:
- Pozrime sa, ako môžeme zmiešať dialógové okno na zadávanie textu
pomocou 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"
- Pozrime sa, ako kombinovať dialógové okno číslo 12 číselných stupníc:
(Toto je jednoduchý skript na zníženie kvality obrázkov jpg a tým zmenšenie priestoru, ktorý zaberá na našich diskoch)
#!/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%" "$@"
- Pozrime sa na ďalší príklad, kde použijeme dialógové okno selektora farieb, kde do fotografie pridáme rám farby, ktorú sme vybrali:
#!/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 "$@"
- Pozrime sa na príklad s dialógovým oknom chybových správ:
#!/bin/bash
rm "$@" || zenity --error --text "Imposible de eliminar esto es una carpeta"
Ako vidíte, ak sa niekto pokúsi odstrániť priečinok, proces vráti chybu, takže reťazec vďaka týmto || operátorom pokračuje.
- Teraz sa pozrime, čo môžeme urobiť s dialógovým oknom číslo 6, výberom akcií, ktoré vykonáme s určitým súborom:
#!/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 "$@"
Upozorňujeme, že v príkazovom riadku je medzera, ktorá neumožňuje, aby text začínal spojovníkom, preto musí byť oddeľovač v tomto prípade null –separator = »».
- Pozrime sa na ďalší príklad s dialógovým oknom 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
... A toto je ono.
Dúfam, že vám môžem priniesť ďalšie zaujímavé príspevky.
pozdravy
Jedinú vec, na ktorú som použil zenity, bolo to, že winetricks žiada, aby to fungovalo dobre (aspoň v mojom oblúku) lol ďakujem za tip
Zenity sa používa pre niektoré ďalšie triky, napríklad pre vyhľadávač Xfce 😀
Ďakujem, ďakujem pekne, dobre, že hovoríte o Gtk + tiež som použil zenity, stále tomu veľmi dobre nerozumiem, ale neskôr s informáciami, ktoré ste poskytli, a s praxou, môžem nájsť ich praktické využitie.
Zdravím.
Hej z Camaguey (mám francúzsku klávesnicu, ktorá mi nedovolí nájsť dva pinticos u ... hehehe), mohli by ste dobre vysvetliť, čo to je pre mňa? A áno, toto všetko robí konzola? Bolo by dobré, keby ste zverejnili niekoľko obrázkov snímok, aby boli ilustrované príklady a aby tak lepšie vyzeralo, čo máte na mysli
Tento článok v skutočnosti nebol napísaný mnou, ale používateľom jedného z našich fór.
Áno, toto všetko robí konzola a ... na čo to slúži? Je to veľmi jednoduché: „vedomosti“.
Príklad použitia, ktoré je možné venovať zenity pre niekoho, kto má francúzsku klávesnicu.
#! /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
Aká škoda. Priame kopírovanie a vkladanie nefunguje, pretože keď sa z neho stane komentár, „zneužíva“ riadky po každom spätnom lomítku „\“.
Aby to fungovalo, musíte kvôli jednoduchému priestoru zmeniť spätné lomky a za nimi zalomenie riadku.
Nekopírujem to znova, aby som nenasýtil komentáre, ale aby bolo jasné, od tretieho do ôsmeho riadku vrátane by to malo byť v jednom riadku, aby:
AKCIA = `zenity – šírka = 0 –výška = 260 –zoznam –titul« selektor Setxkbmap »–text« Vyberte si klávesnicu »–stĺpec« Jazyk »« španielčina »« francúzština »« angličtina »« Gringo »« nemčina »“
Ak chcete zdieľať kód v komentároch, môžete ho uložiť do Koncentrovaná Pasta a vložte adresu URL do svojho komentára. 🙂
Výborná pomôcka. Nevedel som, že tam niečo také je DesdeLinux.
Nabudúce, keď bude komentár vyžadovať kód, použijem ho.
Vďaka za informácie. XD
AH ... a ak vidíte, že používam Linux, je to preto, že používam oba, ale mám záujem sa v Linuxe dobre zorientovať
Veľmi dobrý článok !! Je to veľmi užitočná zenita.
Používam ho v thunarskom skripte, ktorý mení veľkosť vybratých obrázkov, a so zoznamom ponúkam veľkosti štandardných obrázkov.
Zdravím !!
Potrebujem, aby si mi povedal, kde nájdem Zenity, že pretože som už hľadal a nie je v repo, mám…. Ako som šťastný, že používam repo, ktoré si sám nestiahnem ... (Upozornenie: V tomto komentári bol zistený sarkastický režim)
Pozrime sa, čo si o tom myslíte?
#! / Bin / bash
song = $ (zenity –width = 360 –height = 320 –titul „Launcher“ –výber súborov –adresár $ HOME)
nájsť "$ song" -name * .mp3 | triediť –náhodne triediť | hlava -n 100 | xargs -d '\ n' mpg123
Stále to musím trochu vylepšiť