我經常光顧我的國家的論壇……老實說,很少有有趣的事情。 但是,在其中一個論壇中,有一個用戶發表了兩篇有關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
……就是這樣。
希望我能帶給您更多有趣的帖子。
問候
我使用zenity的唯一原因是因為酒壺要求它運作良好(至少在我的拱門中),呵呵,謝謝你的小費
Zenity用於其他技巧,例如Xfce搜索引擎😀
謝謝,非常感謝,很高興您談到Gtk +我也曾經使用過zenity,但我仍然不太了解它,但是後來結合您提供的信息和實踐,我可能會發現它的實際用途。
問候。
嗨,來自卡馬圭(我有一個法文鍵盤,不會讓我找到u的兩個拼音…嘿嘿),您能很好地解釋一下這對我來說是什麼嗎? 如果所有這些都是通過控制台完成的? 如果您發布了一些捕獲的圖像,以便對示例進行說明,這樣可以更好地理解您的意思,那將是很好的
實際上,這篇文章不是我寫的,而是我們一個論壇的用戶寫的。
是的,所有這些操作都是通過控制台完成的,它的作用是什麼? 好吧,這很簡單:“知識”。
可以為使用法語鍵盤的人提供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
哦,真可惜。 直接複製和粘貼不起作用,因為當它成為註釋時,它“不尊重”每個反斜杠“ \”後的換行符。
為了使其正常工作,您必須更改反斜杠,然後在換行符處換一個簡單的空格。
我不會再次復制它,以免使評論飽和,但是要清楚,從第三行到第八行(包括兩個端點),它應該在一行中,這樣:
ACTION =`zenity –width = 0 –height = 260 –list –title«Setxkbmap選擇器»–text«選擇鍵盤»–column«語言»«西班牙語»«法語»«英語»«Gringo»«德語»
如果您想在註釋中共享代碼,可以將其保存在 貼 並將網址粘貼到您的評論中。 🙂
優秀的工具。我不知道還有這樣的事 DesdeLinux.
下次註釋需要代碼時,我將使用它。
謝謝(你的)信息。 XD
嗯...如果您看到我正在使用Linux,那是因為我同時使用了Linux,但是我有興趣逐漸適應Linux
很好的文章! 這是超級有用的禪意。
我在用於調整所選圖像大小的thunar腳本中使用它,並通過列表提供了標準圖像的大小。
您好!
我需要您告訴我在哪裡可以找到Zenity,因為我已經在找東西了,而它不在我擁有的回購中……。 我正在使用自己不下載的存儲庫有多高興……(提醒:此評論中檢測到諷刺模式)
讓我們看看您對此有何看法?
#!/斌/慶典
歌曲= $(Zenity –寬度= 360 –height = 320 –標題“ Launcher” –文件選擇–目錄$ HOME)
找到“ $歌曲” -name * .mp3 | 排序–隨機排序| 頭-n 100 | xargs -d'\ n'mpg123
我還是需要改善一點