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選項不應小於*最小值)

這樣我們選擇最大值
--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 "$@"

請注意,命令框中有一個空格,因為它不允許文本以連字符開頭,因此在這種情況下,分隔符必須為null –separator =»»。

-讓我們看看進度對話框的另一個示例

#!/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. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   腐爛87 他說:

    我使用zenity的唯一原因是因為酒壺要求它運作良好(至少在我的拱門中),呵呵,謝謝你的小費

  2.   elav <°Linux 他說:

    Zenity用於其他技巧,例如Xfce搜索引擎😀

  3.   亞倫·門多 他說:

    謝謝,非常感謝,很高興您談到Gtk +我也曾經使用過zenity,但我仍然不太了解它,但是後來結合您提供的信息和實踐,我可能會發現它的實際用途。

    問候。

  4.   Neo61 他說:

    嗨,來自卡馬圭(我有一個法文鍵盤,不會讓我找到u的兩個拼音…嘿嘿),您能很好地解釋一下這對我來說是什麼嗎? 如果所有這些都是通過控制台完成的? 如果您發布了一些捕獲的圖像,以便對示例進行說明,這樣可以更好地理解您的意思,那將是很好的

    1.    KZKG ^ Gaara 他說:

      實際上,這篇文章不是我寫的,而是我們一個論壇的用戶寫的。
      是的,所有這些操作都是通過控制台完成的,它的作用是什麼? 好吧,這很簡單:“知識”。

    2.    olo 他說:

      可以為使用法語鍵盤的人提供zenity的用法示例。


      #! /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.    olo 他說:

        哦,真可惜。 直接複製和粘貼不起作用,因為當它成為註釋時,它“不尊重”每個反斜杠“ \”後的換行符。

        為了使其正常工作,您必須更改反斜杠,然後在換行符處換一個簡單的空格。
        我不會再次復制它,以免使評論飽和,但是要清楚,從第三行到第八行(包括兩個端點),它應該在一行中,這樣:

        ACTION =`zenity –width = 0 –height = 260 –list –title«Setxkbmap選擇器»–text«選擇鍵盤»–column«語言»«西班牙語»«法語»«英語»«Gringo»«德語»

        1.    曼努埃爾·德拉·富恩特 他說:

          如果您想在註釋中共享代碼,可以將其保存在 並將網址粘貼到您的評論中。 🙂

          1.    olo 他說:

            優秀的工具。我不知道還有這樣的事 DesdeLinux.
            下次註釋需要代碼時,我將使用它。
            謝謝(你的)信息。 XD

  5.   Neo61 他說:

    嗯...如果您看到我正在使用Linux,那是因為我同時使用了Linux,但是我有興趣逐漸適應Linux

  6.   聖地亞哥 他說:

    很好的文章! 這是超級有用的禪意。

    我在用於調整所選圖像大小的thunar腳本中使用它,並通過列表提供了標準圖像的大小。

    您好!

  7.   日向_寧次 他說:

    我需要您告訴我在哪裡可以找到Zenity,因為我已經在找東西了,而它不在我擁有的回購中……。 我正在使用自己不下載的存儲庫有多高興……(提醒:此評論中檢測到諷刺模式)

  8.   何塞·塞勒斯 他說:

    讓我們看看您對此有何看法?
    #!/斌/慶典
    歌曲= $(Zenity –寬度= 360 –height = 320 –標題“ Launcher” –文件選擇–目錄$ HOME)
    找到“ $歌曲” -name * .mp3 | 排序–隨機排序| 頭-n 100 | xargs -d'\ n'mpg123
    我還是需要改善一點