Sử dụng thực tế của hộp thoại Zenity

Tôi thường xuyên lên các diễn đàn ở đất nước mình rất nhiều… và thành thật mà nói, rất hiếm khi tìm thấy điều gì đó thú vị. Tuy nhiên, tại một trong những diễn đàn đó, có một người dùng đã thực hiện hai bài đăng thú vị về Linux, và đây là bài đầu tiên (mà tôi muốn chia sẻ với bạn):

Sử dụng thực tế của hộp thoại Zenity

Zenity là một tập hợp các hộp thoại đồ họa mà thư viện gtk sử dụng, với chương trình này, chúng tôi có thể nhập dữ liệu, chọn danh sách các tác vụ, hiển thị cho chúng tôi thông tin thu được từ một quy trình nhất định, cho phép chúng tôi thực hiện gián đoạn trước hoặc trong một quy trình nhất định, trong số những chức năng khác.

Zenity bao gồm khoảng 13 hộp thoại đồ họa, hãy xem đây là những gì và các kết hợp có thể có của chúng:

1- Để hiển thị cho chúng tôi lịch và chọn một ngày mong muốn (ngày này sẽ được hiển thị ở định dạng số sau khi được chọn):

zenity --calendar

2- Để nhập văn bản (rất hữu ích khi yêu cầu dữ liệu hoặc tên của tệp)

zenity --entry

Kết hợp chúng một cách chính xác để nó yêu cầu chúng tôi nhập dữ liệu

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

3- Để thông báo cho chúng tôi rằng đã xảy ra lỗi

zenity --error --text "Imposible continuar"

4- Để chọn một tệp

zenity --file-selection $HOME

Thêm tùy chọn này cho phép chúng tôi chọn một số tệp:
--multiple

Với điều này, bạn sẽ chỉ chọn các thư mục
--directory

Với điều này thay vì chọn, chúng tôi sẽ kích hoạt tùy chọn lưu
--save

Với điều này, chúng tôi sẽ ngăn một tệp hiện có bị ghi đè:
--confirm-overwrite

5- Cho chúng tôi xem một số thông tin

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

6- Cho chúng tôi xem danh sách các tùy chọn và chọn một hoặc một nhóm trong số này:
zenity --list --column "nombre de columna" "opcion1" "opción2" "opción3" "opción4"

Bây giờ điều gì sẽ xảy ra nếu chúng ta muốn có một danh sách các hành động cho các tệp nhất định, nhưng chúng tôi muốn tên của hành động được thực hiện được hiển thị. Để đạt được điều này, chúng ta phải sử dụng hai tùy chọn này (giá trị –hide-column và * giá trị print-column), nó sẽ giống như sau:

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

Nếu chúng ta muốn chọn nhiều hành động cùng một lúc, chúng ta phải thêm hai tùy chọn này
Văn bản sẽ tách chuỗi đã chọn khỏi chuỗi khác (trong trường hợp này, chúng tôi thêm đoạn này »» có nghĩa là một khoảng trắng
--separator=" "

Và tùy chọn cho phép chúng tôi chọn nhiều hành động cùng một lúc
--multiple

7- Hiển thị cho chúng tôi thông báo trong thanh menu

zenity *notification *text "Texto deseado"

8- Cho chúng tôi thấy tiến trình của một quy trình nhất định:
zenity --progress --pulsate

9- Với điều này, nó sẽ hiển thị cho chúng ta một câu hỏi và chúng ta có thể chọn xem chúng ta có muốn tiếp tục quá trình hay không:

zenity --question --text "Desea Continuar"

10- Với điều này, chúng tôi có thể nhận được kết quả của một chuỗi trong bảng điều khiển, chẳng hạn như danh sách tìm kiếm tệp, truy vấn trợ giúp, trong số những thứ khác:

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

11- Điều này có thể thông báo cho chúng tôi rằng quá trình đã bị gián đoạn.

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

12- Với điều này, chúng ta có thể chọn một số nhất định bằng thanh trượt:

zenity --scale

Bằng cách thêm tùy chọn này, chúng tôi có thể xác định giá trị nhỏ nhất:
--value 60 --min-value 60
(tùy chọn –value không bao giờ được nhỏ hơn * min-value)

Với điều này, chúng tôi chọn giá trị lớn nhất
--max-value 100

13- Với điều này, nó sẽ hiển thị cho chúng ta một hộp thoại mà chúng ta có thể chọn một màu mong muốn và lấy màu từ phía bên kia bằng cái gọi là ống nhỏ giọt chọn màu.
zenity --color-selection --show-palette

Sau khi xem những hộp thoại nào có sẵn trong chương trình này, chúng ta hãy xem một số ví dụ thực tế với những điều này:

- Hãy xem cách chúng ta có thể kết hợp hộp thoại nhập văn bản
sử dụng một tập lệnh:

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

- Hãy xem cách kết hợp hộp thoại số 12 của các thang số:
(Đây là một script đơn giản để giảm chất lượng của hình ảnh jpg và do đó giảm dung lượng nó chiếm trên đĩa của chúng tôi)

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

- Hãy xem một ví dụ khác trong đó chúng ta sẽ sử dụng hộp thoại bộ chọn màu, nơi chúng ta sẽ thêm khung màu mà chúng ta chọn vào ảnh:

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

- Hãy xem một ví dụ với hộp thoại thông báo lỗi:

#!/bin/bash

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

Như bạn có thể thấy, nếu ai đó cố gắng xóa một thư mục, quá trình này sẽ trả về lỗi để chuỗi tiếp tục nhờ vào các toán tử || này.

- Bây giờ hãy xem chúng ta có thể làm gì với hộp thoại số 6, chọn các hành động mà chúng ta sẽ thực hiện trên một tệp nào đó:

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

Lưu ý rằng có một khoảng trống trong hộp lệnh vì nó không cho phép văn bản bắt đầu bằng dấu gạch ngang, do đó dấu phân cách trong trường hợp này phải là null –separator = »».

- Hãy xem một ví dụ khác với hộp thoại tiến trình

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

... Đây là nó.

Tôi hy vọng tôi có thể mang đến cho bạn nhiều bài viết thú vị hơn.

Liên quan


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   thối87 dijo

    Điều duy nhất tôi sử dụng sự nhiệt tình là vì winetricks yêu cầu nó hoạt động tốt (ít nhất là trong kiến ​​trúc của tôi) hehehe cảm ơn vì mẹo

  2.   elav <° Linux dijo

    Zenity được sử dụng cho một số thủ thuật khác, chẳng hạn như công cụ tìm kiếm Xfce 😀

  3.   Aaron Mendo dijo

    Cảm ơn bạn, cảm ơn bạn rất nhiều, tốt là bạn đã nói về Gtk + Tôi cũng đã sử dụng zenity tôi vẫn chưa hiểu rõ lắm nhưng sau này với những thông tin bạn đưa ra và với thực tế tôi có thể thấy một công dụng thực tế cho nó.

    Chúc mừng.

  4.   Neo61 dijo

    Này từ Camaguey (Tôi có một bàn phím tiếng Pháp sẽ không cho phép tôi tìm thấy hai pinticos của u… hehehe), bạn có thể giải thích cho tôi biết cái này dùng để làm gì không? Và vâng, tất cả điều này được thực hiện bởi bàn điều khiển? Sẽ rất tốt nếu bạn đăng một số hình ảnh chụp để minh họa cho các ví dụ và theo cách đó, nó sẽ tốt hơn ý bạn muốn nói

    1.    KZKG ^ Gaara dijo

      Trên thực tế, bài viết này không phải do tôi viết, mà bởi một người dùng trên một diễn đàn của chúng tôi.
      Vâng, tất cả điều này được thực hiện bởi bảng điều khiển, và… nó để làm gì? Nó rất đơn giản: "kiến thức."

    2.    manolox dijo

      Một ví dụ về việc sử dụng có thể được đưa ra để thể hiện sự nhiệt tình đối với người có bàn phím tiếng Pháp.


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

        Ồ, thật đáng xấu hổ. Việc sao chép và dán trực tiếp không hoạt động vì khi nó trở thành một nhận xét, nó "không tôn trọng" dòng ngắt sau mỗi dấu gạch chéo ngược "\".

        Để làm cho nó hoạt động, bạn phải thay đổi dấu gạch chéo ngược theo sau bằng dấu ngắt dòng cho một khoảng trắng đơn giản.
        Tôi không sao chép nó một lần nữa để không làm bão hòa các nhận xét, nhưng để rõ ràng, từ dòng thứ ba đến dòng thứ tám, bao gồm cả hai, nó phải nằm trong một dòng sao cho:

        ACTION = `zenity –width = 0 –height = 260 –list –title« Bộ chọn setxkbmap »–title« Chọn bàn phím của bạn »–cột« Ngôn ngữ »« Tiếng Tây Ban Nha »« Tiếng Pháp »« Tiếng Anh »« Gringo »« Tiếng Đức »

        1.    Hướng dẫn sử dụng Nguồn dijo

          Nếu bạn muốn chia sẻ mã trong các nhận xét, bạn có thể lưu nó trong Dán và dán url vào bình luận của bạn. 🙂

          1.    manolox dijo

            Công cụ tuyệt vời. Tôi không biết có một điều như vậy trong DesdeLinux.
            Lần tới khi nhận xét yêu cầu mã, tôi sẽ sử dụng nó.
            Cảm ơn bạn về thông tin. XD

  5.   Neo61 dijo

    AH ... và nếu bạn thấy rằng tôi đang sử dụng Linux thì đó là vì tôi sử dụng cả hai, nhưng tôi muốn làm quen tốt với Linux

  6.   Santiago dijo

    Bài viết rất hay !! Đó là sự nhiệt tình siêu hữu ích.

    Tôi sử dụng nó trong một tập lệnh thunar thay đổi kích thước các hình ảnh đã chọn và với một danh sách, tôi cung cấp kích thước của các hình ảnh tiêu chuẩn.

    Chúc mừng!

  7.   Hyuuga_Neji dijo

    Tôi cần bạn cho tôi biết nơi để tìm Zenity bởi vì tôi đã tìm kiếm và nó không có trong kho tôi có…. Thật hạnh phúc khi tôi sử dụng một repo mà tôi không tự tải xuống… (Cảnh báo: Chế độ châm biếm được phát hiện trong nhận xét này)

  8.   Jose Bán hàng dijo

    Hãy xem bạn nghĩ gì về điều này?
    #! / bin / bash
    song = $ (zenity –width = 360 –height = 320 –title "Launcher" –file-selection –directory $ HOME)
    tìm "$ song" -name * .mp3 | sắp xếp –random-sắp xếp | đầu -n 100 | xargs -d '\ n' mpg123
    Tôi vẫn cần cải thiện nó một chút