Praktisk bruk av dialogboksen Zenity

Jeg besøker forumene i mitt land mye ... og ærlig talt er det sjelden å finne noe interessant. Imidlertid er det i et av disse forumene en bruker som har laget to interessante innlegg om Linux, og dette er det første (som jeg vil dele med deg):

Praktisk bruk av dialogboksen Zenity

Zenity er et sett med grafiske dialogbokser som brukes av gtk-biblioteker, med dette programmet kan vi legge inn data, velge en liste over oppgaver, vise oss informasjonen som følger av en gitt prosess, la oss gjøre et avbrudd før eller under en bestemt prosess, blant annet funksjoner.

Zenity består av rundt 13 grafiske dialogbokser, la oss se hva dette er og deres mulige kombinasjoner:

1- For å vise oss en kalender og velge ønsket dato (denne datoen vises i numerisk format når den er valgt):

zenity --calendar

2- Å skrive inn tekst (veldig nyttig når du ber om data eller navnet på en fil)

zenity --entry

Kombiner dem riktig slik at det ber oss om at dataene skal legges inn

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

3- For å informere oss om at det har oppstått en feil

zenity --error --text "Imposible continuar"

4- For å velge en fil

zenity --file-selection $HOME

Ved å legge til dette alternativet kan vi velge flere filer:
--multiple

Med dette vil du bare velge mappene
--directory

Med dette i stedet for å velge vil vi aktivere lagringsalternativet
--save

Med dette vil vi forhindre at en eksisterende fil blir overskrevet:
--confirm-overwrite

5- Vis oss viss informasjon

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

6- Vis oss en liste over alternativer og velg en eller en gruppe av disse:
zenity --list --column "nombre de columna" "opcion1" "opción2" "opción3" "opción4"

Hva skjer nå hvis vi vil ha en liste over handlinger for bestemte filer, men vi vil at navnet på handlingen skal utføres skal vises. For å oppnå dette må vi bruke disse to alternativene (–hide-column value and * print-column value) det vil se slik ut:

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

Hvis vi vil velge mer enn én handling om gangen, må vi legge til disse to alternativene
Tekst som skiller den valgte sekvensen fra den andre (i dette tilfellet legger vi til dette »» som betyr et mellomrom
--separator=" "

Og alternativet som lar oss velge mer enn én handling om gangen
--multiple

7- Vis oss et varsel i menylinjen

zenity *notification *text "Texto deseado"

8- Vis fremdriften i en gitt prosess:
zenity --progress --pulsate

9- Med dette vil det vise oss et spørsmål, og vi kan velge om vi vil fortsette med prosessen eller ikke:

zenity --question --text "Desea Continuar"

10- Med dette kan vi motta resultatet av en sekvens i konsollen, for eksempel listen over et søk etter filer, hjelpespørsmål, blant andre:

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

11- Dette kan informere oss om at prosessen er avbrutt.

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

12- Med dette kan vi velge et gitt tall ved hjelp av en glidebryter:

zenity --scale

Ved å legge til dette alternativet kan vi definere minimumsverdien:
--value 60 --min-value 60
(alternativet –verdi bør aldri være mindre enn * min verdi)

Med dette velger vi maksimumsverdien
--max-value 100

13- Med dette vil det vise oss en dialogboks som vi kan velge en ønsket farge med og ta fargen fra den andre siden med den såkalte fargevelgeren.
zenity --color-selection --show-palette

Etter å ha sett hvilke dialogbokser som er tilgjengelige i dette programmet, la oss se noen praktiske eksempler med disse:

- La oss se hvordan vi kan blande dialogboksen for tekstinntasting
ved hjelp av et skript:

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

- La oss se hvordan du kombinerer dialogboksen nummer 12 på numeriske skalaer:
(Dette er et enkelt skript for å senke kvaliteten på jpg-bilder og dermed redusere plassen det opptar på diskene våre)

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

- La oss se et annet eksempel der vi vil bruke fargevalgdialogboksen der vi vil legge til en ramme av fargen som vi velger til et bilde:

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

- La oss se et eksempel med feilmeldingsdialogboksen:

#!/bin/bash

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

Som noen ser, hvis noen prøver å slette en mappe, returnerer prosessen en feil slik at kjeden fortsetter takket være disse || operatørene.

- La oss nå se hva vi kan gjøre med dialogboksen nummer 6, ved å velge handlingene vi vil utføre på en bestemt fil:

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

Merk at det er et mellomrom i kommandofeltet siden det ikke tillater at teksten starter med bindestrek, og derfor må skilletegnet i dette tilfellet være null –separator = »».

- La oss se et annet eksempel med fremdriftsdialogboksen

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

... Vel, dette er det.

Jeg håper jeg kan gi deg flere innlegg som er interessante.

Hilsen


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   råtner87 sa

    Det eneste jeg brukte zenity til var fordi winetricks ber om at det skal fungere bra (i hvert fall i buen min) hehehe takk for tipset

  2.   elav <° Linux sa

    Zenity brukes til noen andre triks, for eksempel Xfce-søkemotoren 😀

  3.   Aaron Mendo sa

    Takk, tusen takk, bra at du snakker om Gtk + Jeg har også brukt zenity Jeg forstår det fortsatt ikke så bra, men senere med den informasjonen du har gitt og med praksis kan jeg finne en praktisk bruk for det.

    Hilsener.

  4.   Neo61 sa

    Hei fra Camaguey (jeg har et fransk tastatur som ikke lar meg finne de to pinticos av u ... hehehe), kan du forklare meg godt hva er dette nyttig for? Og ja, alt dette gjøres med konsoll? Det ville være bra om du la ut noen bilder av opptak slik at eksemplene er illustrert og på den måten ser det bedre ut hva du mener

    1.    KZKG ^ Gaara sa

      Egentlig var denne artikkelen ikke skrevet av meg, men av en bruker av et av forumene våre.
      Ja, alt dette gjøres med konsoll, og ... hva er det til? Vel, det er veldig enkelt: "kunnskap."

    2.    manolox sa

      Et eksempel på bruk som kan gis til storhet for noen med det franske tastaturet.


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

        Å det var synd. Kopiering og liming direkte fungerer ikke fordi når det blir en kommentar, "respekterer" linjen bryter etter hvert tilbakeslag "\".

        For å få det til å fungere, må du endre tilbakeslagene, etterfulgt av en linjeskift for å få en enkel plass.
        Jeg kopierer den ikke igjen for ikke å mette kommentarene, men for å være tydelig, fra tredje linje til åttende, begge inkluderende, bør den være i en enkelt linje slik at:

        ACTION = `zenity –width = 0 –height = 260 –list –title« Setxkbmap selector »–text« Velg tastatur »–kolonne« Språk »« Spansk »« Fransk »« Engelsk »« Gringo »« tysk »`

        1.    Håndbok for kilden sa

          Hvis du vil dele koden i kommentarene, kan du lagre den i Pasta og lim inn url i kommentaren din. 🙂

          1.    manolox sa

            Excelente herramienta. No sabía que existía tal cosa en DesdeLinux.
            Neste gang en kommentar krever kode, vil jeg bruke den.
            Takk for infoen. XD

  5.   Neo61 sa

    AH ... og hvis du ser at jeg bruker Linux, er det fordi jeg bruker begge deler, men jeg er interessert i å komme godt inn i Linux

  6.   Santiago sa

    Veldig bra artikkel !! Det er super nyttig zenity.

    Jeg bruker den i et thunar-skript som endrer størrelsen på de valgte bildene, og med en liste tilbyr jeg størrelsene på standardbildene.

    Hilsener !!

  7.   Hyuuga_Neji sa

    Jeg trenger at du forteller meg hvor jeg kan finne Zenity det fordi jeg allerede ser og det ikke er i repoen jeg har ... Hvor glad jeg bruker en repo som jeg ikke laster ned selv ... (Alert: Sarkastisk modus oppdaget i denne kommentaren)

  8.   Jose Salg sa

    La oss se hva synes du om dette?
    #! / Bin / bash
    sang = $ (zenity –width = 360 –height = 320 –tittel "Launcher" –filvalg – katalog $ HOME)
    finn "$ sang" -navn * .mp3 | sorter – tilfeldig-sortering | hode -n 100 | xargs -d '\ n' mpg123
    Jeg trenger fortsatt å forbedre det litt