Практически приложения на диалоговия прозорец Zenity

Често посещавам форумите на моята страна ... и честно казано, рядко се среща нещо интересно. В един от тези форуми обаче има потребител, който е направил две интересни публикации за 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

... Ами това е.

Надявам се да ви донеса още публикации, които са интересни.

поздрави


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   Гниене87 каза той

    Единственото нещо, за което използвах зенита, беше, защото winetricks иска той да работи добре (поне в моята арка) хехехе благодаря за съвет

  2.   elav <° Linux каза той

    Zenity се използва за някои други трикове, като търсачката Xfce 😀

  3.   Аарон Мендо каза той

    Благодаря, много благодаря, добре, че говорите за Gtk +, аз също използвах зенитност, все още не го разбирам много добре, но по-късно с информацията, която дадохте и с практика може да намеря практическа полза за нея.

    Поздрави.

  4.   Neo61 каза той

    Хей от Камагуей (имам френска клавиатура, която не ми позволява да намеря двете пинтики на u ... хехехе), бихте ли обяснили добре какво е това за мен? И ако всичко това се прави с конзола? Би било добре, ако публикувате няколко изображения на заснемания, за да илюстрирате примерите и по този начин изглежда по-добре това, което имате предвид

    1.    KZKG ^ Гаара каза той

      Всъщност тази статия не е написана от мен, а от потребител на един от нашите форуми.
      Да, всичко това се прави от конзолата и ... за какво е? Е, това е много просто: „знание“.

    2.    манолокс каза той

      Пример за това как да се използва зенит за някой с френска клавиатура.


      #! /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

      1.    манолокс каза той

        О, какъв срам. Копирането и поставянето директно не работи, защото когато се превърне в коментар, той "не уважава" реда се прекъсва след всяка обратна наклонена черта "\".

        За да работи, трябва да смените обратните наклонени черти, последвани от прекъсване на редове, за просто интервал.
        Не го копирам отново, за да не наситя коментарите, но за да бъде ясно, от третия до осмия ред, включително и двата, той трябва да бъде в един ред, така че:

        ACTION = `zenity –width = 0 –height = 260 –list –title« Setxkbmama selector »–text« Изберете вашата клавиатура »–колона« Език »« испански »« френски »« английски »« Gringo »« немски »«

        1.    Мануел де ла Фуенте каза той

          Ако искате да споделите код в коментарите, можете да го запазите в Паста и поставете URL адреса във вашия коментар. 🙂

          1.    манолокс каза той

            Excelente herramienta. No sabía que existía tal cosa en DesdeLinux.
            Следващият път, когато коментарът изисква код, ще го използвам.
            Благодаря за информацията. XD

  5.   Neo61 каза той

    АХ ... и ако видите, че използвам Linux, това е така, защото използвам и двете, но ми е интересно да вляза добре в Linux

  6.   Santiago каза той

    Много добра статия !! Това е супер полезен дух.

    Използвам го в тунарен скрипт, който преоразмерява избраните изображения, и със списък предлагам размерите на стандартните изображения.

    Поздрави!

  7.   Hyuuga_Neji каза той

    Трябва да ми кажете къде да намеря Zenity, тъй като вече търсих и не е в репото, което имам ... Колко щастлив съм, че използвам репо, че не се изтегля сам ... (Предупреждение: Саркастичен режим, открит в този коментар)

  8.   Хосе Продажби каза той

    Нека да видим какво мислите за това?
    #! / Хамбар / Баш
    song = $ (zenity –width = 360 –height = 320 –заглавие „Launcher“ –file-selection –directory $ HOME)
    намери "$ song" -name * .mp3 | сортиране –случайно сортиране | глава -n 100 | xargs -d '\ n' mpg123
    Все още трябва да го подобря малко