Практическое использование диалогового окна 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 никогда не должен быть меньше * min-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 "$@"

Обратите внимание, что в поле команд есть пробел, так как он не позволяет тексту начинаться с дефиса, поэтому разделитель в этом случае должен быть нулевым –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 сказал

    Единственное, для чего я использовал zenity, это потому, что winetricks просит, чтобы он работал хорошо (по крайней мере, в моей арке) хе-хе-хе, спасибо за совет

  2.   elav <° Linux сказал

    Zenity используется для некоторых других уловок, таких как поисковая система Xfce 😀

  3.   Аарон Мендо сказал

    Спасибо, большое спасибо, хорошо, что вы говорите о Gtk +. Я также использовал zenity, я все еще не очень хорошо его понимаю, но позже с информацией, которую вы предоставили, и с практикой я могу найти для нее практическое применение.

    Привет.

  4.   Neo61 сказал

    Привет из Камагуэя (у меня есть французская клавиатура, которая не позволяет мне найти два пинтико у ... хехехе), не могли бы вы объяснить мне, для чего это полезно? А если все это делать с помощью консоли? Было бы хорошо, если бы вы разместили несколько изображений захваченных изображений, чтобы примеры были проиллюстрированы и таким образом они выглядели лучше, что вы имеете в виду

    1.    КЗКГ ^ Гаара сказал

      Собственно, эта статья написана не мной, а пользователем одного из наших форумов.
      Да, все это делается с помощью консоли, и… для чего? Что ж, все очень просто: «знания».

    2.    Manolox сказал

      Пример использования, которое можно придать энтузиазму человеку, владеющему французской клавиатурой.


      #! /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.    Manolox сказал

        Ах, как жаль. Прямое копирование и вставка не работает, потому что, когда он становится комментарием, он "игнорирует" перенос строки после каждой обратной косой черты "\".

        Чтобы это работало, вам нужно заменить обратную косую черту, а затем разрыв строки для простого пробела.
        Я не копирую его снова, чтобы не загромождать комментарии, но для ясности, с третьей строки по восьмую включительно, она должна быть в одной строке, например:

        ACTION = `zenity –width = 0 –height = 260 –list –title« Setxkbmap selector »–text« Выберите клавиатуру »–колонка« Язык »« Испанский »« Французский »« Английский »« Гринго »« Немецкий »`

        1.    Мануэль де ла Фуэнте сказал

          Если вы хотите поделиться кодом в комментариях, вы можете сохранить его в папке Вставить и вставьте URL-адрес в свой комментарий. 🙂

          1.    Manolox сказал

            Отличный инструмент. Я не знал, что такое есть в DesdeLinux.
            В следующий раз, когда для комментария потребуется код, я воспользуюсь им.
            Спасибо за информацию. XD

  5.   Neo61 сказал

    А ... и если вы видите, что я использую Linux, это потому, что я использую оба, но мне интересно хорошо освоиться в Linux

  6.   Сантьяго сказал

    Очень хорошая статья !! Это суперполезное самолюбие.

    Я использую его в скрипте thunar, который изменяет размер выбранных изображений, а в списке я предлагаю размеры стандартных изображений.

    Привет!

  7.   Хьюга_Неджи сказал

    Мне нужно, чтобы вы сказали мне, где найти Zenity, потому что я уже искал, и его нет в репо, которое у меня есть…. Как хорошо я использую репо, которое сам не скачиваю… (Предупреждение: в этом комментарии обнаружен саркастический режим)

  8.   Хосе Сейлз сказал

    Посмотрим, что вы об этом думаете?
    #! / Bin / Баш
    song = $ (zenity –width = 360 –height = 320 –title "Launcher" –file-selection –directory $ HOME)
    найти "$ song" -name * .mp3 | сортировка – случайная сортировка | голова -n 100 | xargs -d '\ n' mpg123
    Мне все еще нужно немного улучшить