Praktische Verwendung des Zenity-Dialogfelds

Ich bin oft in den Foren meines Landes… und ehrlich gesagt ist es selten, etwas Interessantes zu finden. In einem dieser Foren gibt es jedoch einen Benutzer, der zwei interessante Beiträge zu Linux verfasst hat, und dies ist der erste (den ich mit Ihnen teilen möchte):

Praktische Verwendung des Zenity-Dialogfelds

Zenity ist eine Reihe von grafischen Dialogfeldern, die von GTK-Bibliotheken verwendet werden. Mit diesem Programm können wir Daten eingeben, eine Liste von Aufgaben auswählen, uns die Informationen anzeigen, die sich aus einem bestimmten Prozess ergeben, und es ermöglichen, vor oder während eines bestimmten Prozesses eine Unterbrechung vorzunehmen. unter anderem Funktionen.

Zenity besteht aus rund 13 grafischen Dialogfeldern. Sehen wir uns diese und ihre möglichen Kombinationen an:

1- So zeigen Sie uns einen Kalender an und wählen ein gewünschtes Datum aus (dieses Datum wird nach Auswahl im numerischen Format angezeigt):

zenity --calendar

2- Text eingeben (sehr nützlich, wenn Daten oder der Name einer Datei angefordert werden)

zenity --entry

Kombinieren Sie sie richtig, damit wir aufgefordert werden, die Daten einzugeben

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

3- Um uns mitzuteilen, dass ein Fehler aufgetreten ist

zenity --error --text "Imposible continuar"

4- Eine Datei auswählen

zenity --file-selection $HOME

Durch Hinzufügen dieser Option können wir mehrere Dateien auswählen:
--multiple

Damit wählen Sie nur die Ordner aus
--directory

Anstatt diese Option auszuwählen, aktivieren wir die Speicheroption
--save

Damit verhindern wir, dass eine vorhandene Datei überschrieben wird:
--confirm-overwrite

5- Zeigen Sie uns bestimmte Informationen

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

6- Zeigen Sie uns eine Liste mit Optionen und wählen Sie eine oder eine Gruppe davon aus:
zenity --list --column "nombre de columna" "opcion1" "opción2" "opción3" "opción4"

Was ist nun, wenn wir eine Liste von Aktionen für bestimmte Dateien haben möchten, aber der Name der auszuführenden Aktion angezeigt werden soll? Um dies zu erreichen, müssen wir diese beiden Optionen verwenden (–hide-column value und * print-column value). Es würde folgendermaßen aussehen:

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

Wenn wir mehr als eine Aktion gleichzeitig auswählen möchten, müssen wir diese beiden Optionen hinzufügen
Text, der die gewählte Sequenz von der anderen trennt (in diesem Fall fügen wir dieses »» hinzu, was ein Leerzeichen bedeutet
--separator=" "

Und die Option, mit der wir mehr als eine Aktion gleichzeitig auswählen können
--multiple

7- Zeigen Sie uns eine Benachrichtigung in der Menüleiste

zenity *notification *text "Texto deseado"

8- Zeigen Sie uns den Fortschritt eines bestimmten Prozesses:
zenity --progress --pulsate

9- Damit wird uns eine Frage angezeigt und wir können wählen, ob wir den Prozess fortsetzen möchten oder nicht:

zenity --question --text "Desea Continuar"

10- Damit können wir das Ergebnis einer Sequenz in der Konsole erhalten, wie zum Beispiel die Liste einer Suche nach Dateien, Hilfeabfragen, unter anderem:

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

11- Dies kann uns darüber informieren, dass der Prozess unterbrochen wurde.

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

12- Damit können wir eine bestimmte Nummer mittels eines Schiebereglers auswählen:

zenity --scale

Durch Hinzufügen dieser Option können wir den Mindestwert definieren:
--value 60 --min-value 60
(Die Option –value sollte niemals kleiner als * min-value sein.)

Damit wählen wir den Maximalwert
--max-value 100

13- Damit wird uns ein Dialogfeld angezeigt, in dem wir eine gewünschte Farbe auswählen und die Farbe von der anderen Seite mit der sogenannten Farbauswahl-Pipette übernehmen können.
zenity --color-selection --show-palette

Nachdem wir gesehen haben, welche Dialogfelder in diesem Programm verfügbar sind, sehen wir uns einige praktische Beispiele an:

- Mal sehen, wie wir das Texteingabedialogfeld mischen können
mit einem 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"

- Mal sehen, wie man das Dialogfeld Nummer 12 der numerischen Skalen kombiniert:
(Dies ist ein einfaches Skript, um die Qualität von JPG-Bildern zu verringern und damit den Speicherplatz auf unseren Festplatten zu verringern.)

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

- Sehen wir uns ein weiteres Beispiel an, in dem wir das Dialogfeld zur Farbauswahl verwenden, in dem wir einem Foto einen Rahmen der von uns ausgewählten Farbe hinzufügen:

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

- Sehen wir uns ein Beispiel mit dem Dialogfeld Fehlermeldungen an:

#!/bin/bash

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

Wie Sie sehen können, gibt der Prozess einen Fehler zurück, wenn jemand versucht, einen Ordner zu löschen, sodass die Kette dank dieser || Operatoren fortgesetzt wird.

- Lassen Sie uns nun sehen, was wir mit dem Dialogfeld Nummer 6 tun können, und die Aktionen auswählen, die für eine bestimmte Datei ausgeführt werden sollen:

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

Beachten Sie, dass im Befehlsfeld ein Leerzeichen vorhanden ist, da der Text nicht mit einem Bindestrich beginnen darf. Daher muss das Trennzeichen in diesem Fall null –separator = »» sein.

- Sehen wir uns ein weiteres Beispiel mit dem Fortschrittsdialogfeld an

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

... Nun das ist es.

Ich hoffe, ich kann Ihnen weitere interessante Beiträge bringen.

Grüße


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   rots87 sagte

    Das einzige, wofür ich den Zenity verwendet habe, war, dass Winetricks darum bittet, dass er gut funktioniert (zumindest in meinem Bogen), hehehe, danke für den Tipp

  2.   elav <° Linux sagte

    Zenity wird für einige andere Tricks verwendet, beispielsweise für die Xfce-Suchmaschine 😀

  3.   Aaron Mendo sagte

    Vielen Dank, vielen Dank, gut, dass Sie von Gtk + sprechen. Ich habe auch Zenity verwendet. Ich verstehe es immer noch nicht sehr gut, aber später mit den Informationen, die Sie gegeben haben, und mit Übung kann ich eine praktische Verwendung dafür finden.

    Grüße.

  4.   Neo61 sagte

    Hey aus Camagüey (ich habe eine französische Tastatur, mit der ich die beiden Pinticos des u… hehehe nicht finden kann), kannst du gut erklären, was das für mich ist? Und wenn das alles über die Konsole erledigt wird? Es wäre gut, wenn Sie einige Bilder von Aufnahmen veröffentlichen würden, damit die Beispiele illustriert werden und auf diese Weise besser aussieht, was Sie meinen

    1.    KZKG ^ Gaara sagte

      Eigentlich wurde dieser Artikel nicht von mir geschrieben, sondern von einem Benutzer eines unserer Foren.
      Ja, das alles wird über die Konsole erledigt und… wofür ist es? Nun, es ist sehr einfach: "Wissen".

    2.    Manolox sagte

      Ein Beispiel für die Verwendung von Zenity für jemanden mit der französischen Tastatur.


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

        Oh was für eine Schande. Das direkte Kopieren und Einfügen funktioniert nicht, da die Zeilenumbrüche nach jedem Backslash "\" "missachtet" werden, wenn sie zu einem Kommentar werden.

        Damit es funktioniert, müssen Sie die Backslashes ändern, gefolgt von einem Zeilenumbruch, um ein einfaches Leerzeichen zu erhalten.
        Ich kopiere es nicht noch einmal, um die Kommentare nicht zu sättigen, aber um klar zu sein, sollte es von der dritten bis zur achten Zeile, beide einschließlich, in einer einzigen Zeile stehen, so dass:

        ACTION = `zenity –width = 0 –height = 260 –list –title« Setxkbmap-Selektor »–text« Wählen Sie Ihre Tastatur »–Spalte« Sprache »« Spanisch »« Französisch »« Englisch »« Gringo »« Deutsch »`

        1.    Handbuch der Quelle sagte

          Wenn Sie Code in den Kommentaren freigeben möchten, können Sie ihn in der speichern Pasta und fügen Sie die URL in Ihren Kommentar ein. 🙂

          1.    Manolox sagte

            Ausgezeichnetes Werkzeug. Ich wusste nicht, dass so etwas existiert DesdeLinux.
            Wenn ein Kommentar das nächste Mal Code erfordert, werde ich ihn verwenden.
            Danke für die Information. XD

  5.   Neo61 sagte

    AH ... und wenn Sie sehen, dass ich Linux verwende, liegt es daran, dass ich beide verwende, aber ich bin daran interessiert, gut in Linux einzusteigen

  6.   Santiago sagte

    Sehr guter Artikel !! Es ist super nützliche Zenität.

    Ich verwende es in einem Thunar-Skript, das die Größe der ausgewählten Bilder ändert, und mit einer Liste biete ich die Größen der Standardbilder an.

    Greetings!

  7.   Hyuuga_neji sagte

    Sie müssen mir sagen, wo ich die Zenität finden kann, weil ich bereits gesucht habe und sie nicht in dem Repo enthalten ist, das ich habe. Wie glücklich ich bin, ein Repo zu verwenden, das ich nicht selbst herunterlade… (Warnung: Sarkastischer Modus in diesem Kommentar erkannt)

  8.   Jose Sales sagte

    Mal sehen, was du davon hältst?
    #! / Bin / bash
    song = $ (Zenity –width = 360 –height = 320 –title "Launcher" –Dateiauswahl –Directory $ HOME)
    finde "$ song" -Name * .mp3 | sort –random-sort | Kopf -n 100 | xargs -d '\ n' mpg123
    Ich muss es noch ein wenig verbessern