Практичне використання діалогового вікна 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 "$@"

Зверніть увагу, що в командному полі є пробіл, оскільки він не дозволяє тексту починатися з дефіса, тому роздільник у цьому випадку має бути нульовим –сепаратором = »».

- Подивимось ще один приклад з діалоговим вікном прогресу

#!/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 - сказав він

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

    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« Setxkbmapa selector »–text« Select your keyboard »–colum« Language »« Spanish »« French »« English »« Gringo »« German »`

        1.    Мануель де ла Фуенте - сказав він

          Якщо ви хочете поділитися кодом у коментарях, ви можете зберегти його в Паста та вставте URL-адресу у свій коментар. 🙂

          1.    манолокс - сказав він

            Відмінний засіб. Я не знав, що таке є DesdeLinux.
            Наступного разу, коли коментар потребує коду, я буду його використовувати.
            Дякую за інформацію. XD

  5.   Neo61 - сказав він

    АГ ... і якщо ви бачите, що я використовую Linux, це тому, що я використовую обидва, але я зацікавлений у тому, щоб добре вступити в Linux

  6.   Сантьяго - сказав він

    Дуже хороша стаття !! Це надзвичайно корисна зенітність.

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

    Привіт!

  7.   Хюга_Неджі - сказав він

    Мені потрібно, щоб ви сказали мені, де знайти Zenity, тому що я вже шукав, і його немає в репо, яке я маю…. Як я щасливий, що використовую репо, що я сам не завантажую… (Оповіщення: у цьому коментарі виявлено саркастичний режим)

  8.   Хосе Продаж - сказав він

    Давайте подивимось, що ви про це думаєте?
    #! / бін / баш
    пісня = $ (zenity –width = 360 –height = 320 –заголовок "Launcher" –файл-вибір –довідник $ HOME)
    знайти "$ song" -name * .mp3 | сортувати –випадково-сортувати | голова -н 100 | xargs -d '\ n' mpg123
    Мені ще потрібно трохи його вдосконалити