Praktikal na paggamit ng kahon ng dialogo ng Zenity

Madalas kong madalas ang mga forum sa aking bansa ... at sa totoo lang, bihirang makahanap ng isang bagay na kawili-wili. Gayunpaman, sa isa sa mga forum na iyon, mayroong isang gumagamit na gumawa ng dalawang kagiliw-giliw na mga post tungkol sa Linux, at ito ang una (na nais kong ibahagi sa iyo):

Praktikal na paggamit ng kahon ng dialogo ng Zenity

Ang Zenity ay isang hanay ng mga graphic na kahon ng dayalogo na ginagamit ng mga gtk library, kasama ang program na ito maaari kaming magpasok ng data, pumili ng isang listahan ng mga gawain, ipakita sa amin ang impormasyong nagreresulta mula sa isang naibigay na proseso, payagan kaming gumawa ng isang pagkagambala bago o sa panahon ng isang tiyak na proseso, bukod sa iba pa pagpapaandar

Ang Zenity ay binubuo ng humigit-kumulang na 13 mga graphic dialog box, tingnan natin kung ano ang mga ito at ang kanilang mga posibleng kumbinasyon:

1- Upang maipakita sa amin ang isang kalendaryo at pumili ng isang nais na petsa (ang petsa na ito ay ipapakita sa numerong format sa sandaling napili):

zenity --calendar

2- Upang maglagay ng teksto (napaka kapaki-pakinabang kapag humihiling ng data o ang pangalan ng isang file)

zenity --entry

Pagsamahin nang tama ang mga ito upang hilingin sa amin na ipasok ang data

zenity --entry --text "Escriba el nombre del archivo"

3- Upang ipaalam sa amin na may naganap na error

zenity --error --text "Imposible continuar"

4- Upang pumili ng isang file

zenity --file-selection $HOME

Ang pagdaragdag ng opsyong ito ay nagbibigay-daan sa amin upang pumili ng maraming mga file:
--multiple

Sa mga ito pipiliin mo lamang ang mga folder
--directory

Sa pamamagitan nito sa halip na pumili ay isasaaktibo namin ang pagpipilian sa pag-save
--save

Sa pamamagitan nito pipigilan namin ang isang mayroon nang file na mai-overlap:
--confirm-overwrite

5- Ipakita sa amin ang ilang impormasyon

zenity --info *text "Información a mostrar"

6- Ipakita sa amin ang isang listahan ng mga pagpipilian at pumili ng isa o isang pangkat ng mga ito:
zenity --list --column "nombre de columna" "opcion1" "opción2" "opción3" "opción4"

Ngayon ano ang mangyayari kung nais nating magkaroon ng isang listahan ng mga aksyon para sa ilang mga file, ngunit nais naming maipakita ang pangalan ng pagkilos. Upang makamit ito kailangan nating gamitin ang dalawang pagpipilian na ito (–hide-halagang haligi at * halaga ng print-haligi) ganito ang hitsura:

zenity --hide-column 2 --print-column 2 --list --column "nombre de columna" --column "columna oculta" "nombre1" "comando1" "nombre2" "comando2"

Kung nais naming pumili ng higit sa isang aksyon nang paisa-isa, dapat nating idagdag ang dalawang pagpipiliang ito
Teksto na maghihiwalay sa napiling pagkakasunud-sunod mula sa iba (sa kasong ito idagdag namin ito »» na nangangahulugang isang puwang
--separator=" "

At ang pagpipilian na magpapahintulot sa amin na pumili ng higit sa isang aksyon nang paisa-isa
--multiple

7- Ipakita sa amin ang isang notification sa menu bar

zenity *notification *text "Texto deseado"

8- Ipakita sa amin ang pag-usad ng isang naibigay na proseso:
zenity --progress --pulsate

9- Sa pamamagitan nito, ipapakita nito sa amin ang isang katanungan at maaari nating piliin kung nais nating magpatuloy sa proseso:

zenity --question --text "Desea Continuar"

10- Sa pamamagitan nito maaari naming matanggap ang resulta ng isang pagkakasunud-sunod sa console tulad ng listahan ng isang paghahanap para sa mga file, mga query ng tulong, bukod sa iba pa:

zenity --text-info zenity --help-all | zenity --text-info

11- Maaari itong ipaalam sa amin na ang proseso ay nagambala.

zenity --warning --text "El proceso ha fallado" ls /media/carpeta || zenity --warning --text "No existe el directorio"

12- Sa pamamagitan nito maaari nating mapili ang isang naibigay na numero sa pamamagitan ng isang slider bar:

zenity --scale

Sa pamamagitan ng pagdaragdag ng opsyong ito, maaari naming tukuyin ang minimum na halaga:
--value 60 --min-value 60
(ang pagpipilian na –value ay hindi dapat mas mababa sa * min-halaga)

Sa pamamagitan nito pipiliin namin ang maximum na halaga
--max-value 100

13- Sa pamamagitan nito ipapakita sa amin ang isang dialog box kung saan maaari kaming pumili ng isang nais na kulay at kunin ang kulay mula sa kabilang panig gamit ang tinaguriang dropper ng tagapili ng kulay.
zenity --color-selection --show-palette

Matapos makita kung aling mga kahon ng dayalogo ang magagamit sa program na ito, tingnan natin ang ilang mga praktikal na halimbawa sa mga ito:

- Tingnan natin kung paano natin makakasama ang kahon ng dialog ng input ng teksto
gamit ang isang script:

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

- Tingnan natin kung paano pagsamahin ang dialog box bilang 12 ng mga numerong kaliskis:
(Ito ay isang simpleng script upang babaan ang kalidad ng mga jpg na imahe at sa gayon ay mabawasan ang puwang na sinasakop nito sa aming mga disk)

#!/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%" "$@"

- Tingnan natin ang isa pang halimbawa kung saan gagamitin namin ang kahon ng dayalogo ng tagapili ng kulay kung saan magdaragdag kami ng isang frame ng kulay na pipiliin namin sa isang larawan:

#!/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 "$@"

- Tingnan natin ang isang halimbawa sa kahon ng dialogo ng mga mensahe ng error:

#!/bin/bash

rm "$@" || zenity --error --text "Imposible de eliminar esto es una carpeta"

Tulad ng nakikita mo, kung ang isang tao ay sumusubok na tanggalin ang isang folder, ang proseso ay nagbabalik ng isang error kaya't ang chain ay nagpapatuloy salamat sa mga || operator na ito.

- Tingnan natin ngayon kung ano ang maaari nating gawin sa dialog box number 6, na pumipili ng mga pagkilos na gagawin natin sa isang tiyak na file:

#!/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 "$@"

Tandaan na mayroong puwang sa command box dahil hindi nito pinapayagan ang teksto na magsimula sa isang gitling, samakatuwid ang delimiter sa kasong ito ay dapat na null –separator = »».

- Tingnan natin ang isa pang halimbawa sa kahon ng dialogo ng pag-usad

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

... Well ito na.

Inaasahan kong makapagdala ako sa iyo ng mas maraming mga post na kawili-wili.

Regards


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   Nabulok87 dijo

    Ang nag-iisa lamang na ginamit ko ang zenity ay dahil hinihiling ng winetrick na gumana ito ng mabuti (kahit sa aking arko) hehehe salamat sa tip

  2.   elav <° Linux dijo

    Ginagamit ang Zenity para sa ilang iba pang mga trick, tulad ng Xfce search engine 😀

  3.   Aaron Mendo dijo

    Maraming salamat, maraming salamat, mabuti na pinag-uusapan mo ang Gtk + Gumamit din ako ng kasiglahan Hindi ko pa rin ito masyadong nauunawaan ngunit kalaunan sa impormasyong ibinigay mo at sa pagsasanay maaari akong makahanap ng praktikal na paggamit para dito.

    Pagbati.

  4.   Neo61 dijo

    Hoy mula sa Camaguey (Mayroon akong isang French keyboard na hindi ako hahayaang makita ang dalawang pintiko ng u… hehehe), maaari mo bang ipaliwanag nang mabuti kung ano ito para sa akin? At kung ang lahat ng ito ay ginagawa ng console? Mabuti kung nag-post ka ng ilang mga larawan ng mga nakunan upang ang mga halimbawa ay nakalarawan at sa ganoong paraan mas mahusay itong tingnan kung ano ang ibig mong sabihin

    1.    KZKG ^ Gaara dijo

      Sa totoo lang, ang artikulong ito ay hindi ko isinulat, ngunit ng isang gumagamit ng isa sa aming mga forum.
      Oo, lahat ng ito ay ginagawa sa pamamagitan ng console, at… para saan ito? Sa gayon, napakasimple nito: "kaalaman."

    2.    manolox dijo

      Isang halimbawa ng paggamit na maaaring ibigay sa zenity para sa isang taong may French keyboard.


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

        Naku, nakakahiya naman. Ang pagkopya at pag-paste nang direkta ay hindi gagana dahil kapag ito ay naging isang puna, "hindi nito nirerespeto" ang linya na masira pagkatapos ng bawat backslash na "\".

        Upang gumana ito, kailangan mong baguhin ang mga backslashes na susundan ng isang linya ng break para sa isang simpleng puwang.
        Hindi ko ito kopyahin muli upang hindi mababad ang mga komento, ngunit upang maging malinaw, mula sa ikatlong linya hanggang sa ikawalong, kapwa kasama, dapat itong nasa isang solong linya tulad ng:

        ACTION = `zenity –width = 0 –height = 260 – list –title« Setxkbmap selector »–text« Piliin ang iyong keyboard »–column« Wika »« Spanish »« French »« English »« Gringo »« German »`

        1.    Manwal ng Pinagmulan dijo

          Kung nais mong ibahagi ang code sa mga komento maaari mo itong i-save sa Ilagay at i-paste ang url sa iyong puna. 🙂

          1.    manolox dijo

            Napakahusay na tool. Hindi ko alam na may ganito pala sa loob DesdeLinux.
            Sa susunod na ang isang komento ay nangangailangan ng code ay gagamitin ko ito.
            Salamat sa impormasyon. XD

  5.   Neo61 dijo

    AH ... at kung nakikita mo na gumagamit ako ng Linux ito ay dahil gumagamit ako ng pareho, ngunit interesado akong makakuha ng maayos sa Linux

  6.   Santiago dijo

    Napakagandang artikulo !! Napaka kapaki-pakinabang na zenity.

    Ginagamit ko ito sa isang thunar script na nagbabago ang laki ng mga napiling imahe, at sa isang listahan ay inaalok ko ang mga laki ng karaniwang mga imahe.

    Pagbati!

  7.   Hyuuga_Neji dijo

    Kailangan kong sabihin mo sa akin kung saan mahahanap ang Zenity na dahil naghahanap na ako at wala ito sa repo na mayroon ako .... Gaano ako kasaya sa isang repo na hindi ko nai-download ang aking sarili ... (Alerto: Nakita ang sarcastic mode sa komentong ito)

  8.   Jose Sales dijo

    Tingnan natin kung ano ang palagay mo tungkol dito?
    #! / bin / bash
    kanta = $ (zenity –width = 360 –height = 320 –title "Launcher" –file-select –directory $ HOME)
    hanapin ang "$ song" -name * .mp3 | pag-uuri –random-sort | ulo -n 100 | xargs -d '\ n' mpg123
    Kailangan ko pang pagbutihin ito ng kaunti