Linux对话框程序zenity使用大全

http://bandari.fans.blog.163.com/blog/static/1694189062012211114221121/

很久之前分析一个脚本时知道了这个程序,man的解释是 ‘GTK+对话框程序’zenity的使用方法用 “zenity --help-all或者 man zenity 就能得到,我在这里翻译兼实践介绍下吧。
zenity使用在shell环境下,通过它能轻松的写出图形界面的shell脚本,非常的使用,只要会shell就一定会用它。文章中所有特大号的选项每次只能用一个,后面的紧跟的参数必须和此选项一块运行
先看zenity的全局参数,全局参数就是指直接跟在zenity后面的,不管之后用什么参数,这些都有用的参数。zenity –-title=TITLE 设定对话框的名称--window-icon=ICONPATH 设置窗口图标,在使用errorinfoquestionwarning中任意一个参数时显示。(可以不设置,使用默认)--width=xx 对话框宽--height=xx 对话框高--timeout=TIMEOUT 超时时间,单位为秒。(和error等提示窗口并用,可以让窗口在指定时间内消失)例:

	

zenity --error --timeout=10 --width=300 height=300

显示一个宽高都是300像素的错误对话框,10秒后自动关闭,效果如下:

Linux对话框程序zenity使用大全 - flow - 发现ubuntu!

 

--list 选项(显示表格,返回值为选择的东西)  --text=TEXT list的名称  --column=NAME1 NAME1为第一列名称  --coulmn=NAME2 NAME2为第二列名称,以此类推  aa bb cc dd list中的值,  --checklist 对钩,如果用了这个参数,第一行全部会变为方框,可以钩选,上面aacc如果用TRUE代替,则默认bbdd前面就有对钩,如下Linux对话框程序zenity使用大全 - flow - 发现ubuntu!--radiolist 按钮,如果有这个参数,则第一列全部变为按钮而不是值。例:zenity --list --text=请选择 --column=xx --column=yy aa bb cc dd有两列,四个值,所以自动划分为两行,如果我选择第一行,则返回值为aaLinux对话框程序zenity使用大全 - flow - 发现ubuntu!--multiple 允许多选,返回值为aa|cc ,不能和radiolist参数共用--editable 允许编辑--print-column= ALL/1/2 如果有多行,使用ALL,返回选择行的所有内容,1则返回这行的第一个值,2为第二个,以此类推。--hide-column=NUM 隐藏某一列,在上例中,如果NUM2,则不显示yy那行--hide-header 隐藏行的标题,在上例中就是不显示xxyy例:

	

zenity --title=select --list --text=请选择 --multiple --hide-column=2 --hide-header --print-column=2 --column=xx --column=yy aa 'ls -al' cc 'ls -l'

列表有两行两列,隐藏第二列,程序返回值是行中第二个值如果我选择aa,则程序返回值为“ls -al”Linux对话框程序zenity使用大全 - flow - 发现ubuntu!


--calendar选项--text=TEXT 显示说明--day=DAY --month=MONTH 显示某月某天--date-format=PATTERN 调整输出格式(如:%d/%m/%y例:

	

zenity --calendar --day=1 --month=2 --year=2012 --date-format=%d/%m/%y

默认显示201221号,可以选择别的日期,返回值就是选择的日期Linux对话框程序zenity使用大全 - flow - 发现ubuntu!返回值为11/03/12


--entry 选项(输入窗口)  --text=TEXT 显示说明  --entry-text=XX 默认对话框中显示什么文字  --hide-text ***代替输入,安全例:

	

zenity --entry --entry-text=输入密码

Linux对话框程序zenity使用大全 - flow - 发现ubuntu!返回值就是输入的东西。


--error 的选项--text=TEXT 显示的错误信息--no-wrap 不允许换行例:

	

zenity --error --text="errorerrorerrorerrorerrorerrorerrorerrorerrorerrorerrorerrorerrorerrorerrorerrorerror" --no-wrap

Linux对话框程序zenity使用大全 - flow - 发现ubuntu!--info 选项--text=TEXT 显示说明--no-wrap 不允许换行用法和error差不多,只是图标不一样。--warning 选项--text=TEXT 显示的错误信息--no-wrap 不允许换行用法和error差不多,只是图标不一样。


--file-selection 选项(选择文件),返回值为绝对路径--filename=FILENAME 设置默认选择的目录或路径--multiple允许选择多个文件,返回值之间用“|”隔开--directory选择文件夹而不是文件--save 开启保存模式,可以保存文件夹或者文件--separator=SEPARATOR设置多个返回值之间间隔符--confirm-overwrite当文件存在时提示是否覆盖--file-filter=NAME1 --file-filter=NAME2 将文件12过滤出来设置文件过滤,可以设置为*.pdf这样的,就能只显示pdf格式的文件,便于选择


--notification 托盘信息图标--text=TEXT 显示说明--listen 倾听标准输入stdin的命令,可识别的命令有message', 'tooltip', 'icon', 'visible'用“:”隔开命令和内容,用法:'message: Hello world', 'visible: false', 或 'icon: /path/to/icon'我会用的只有message例:

	

echo message:$(zenity --calendar --day=1 --month=2 --year=2012 --date-format=%d/%m/%y)| zenity --notification --text=aa --listen

选择一个日期,然后利用托盘显示出来,这是显示结果Linux对话框程序zenity使用大全 - flow - 发现ubuntu!其实gnome2(别的不清楚了)下有个专门显示托盘信息的程序notify-send  直接在后面加要显示的内容就行(最好用“ “把内容扩起来)



--progress 选项(进度条)--text=TEXT 显示说明--percentage=INT 设置起始刻度(0~100--auto-close100%时自动关闭--auto-kill如果按下了cancel后关闭父进程--pulsate使进度条闪动--no-cancel隐藏cancel按钮例:

	

find $HOME -name '*.pdf' | zenity --progress --pulsate




--question 选项--text=TEXT 显示的问题为TEXT--no-wrap不允许换行--ok-label =??设置OK按钮的文字(就是将默认的OK改为什么文字)--cancel-label设置cancel按钮的文字(就是将默认的cancel改为什么文字)如果选择OK,,则$?(上条命令的执行状态)的值为0,否则为1.例:

	

zenity --question --text=今天是2011年? --ok-label= --cancel-label=

Linux对话框程序zenity使用大全 - flow - 发现ubuntu!

--scale 刻度--text=TEXT 显示说明--value=NUM 设定刻度初始值--min-value=VALUE设置最小值--max-value=VALUE设置最大值--step=VALUE设置鼠标滑轮滑一下值变化多少(可以是负的,但必须是整数),与鼠标设置还有关,step的值乘鼠标滑动一下翻的行数就等于滑一下改变的数值。。我的鼠标滑轮滑一下可以翻两行,step设为1时,每滑下鼠标滑轮数值就变化两个单位--print-partial托动时,每停一下就返回一个值--hide-value隐藏刻度值例:

	

zenity --scale --value=50 --min-value=30 --max-value=70 --step=1

Linux对话框程序zenity使用大全 - flow - 发现ubuntu!

--text-info 显示文件中的内容--filename=PATH/FILENAME 文件路径和文件名--editable 可编辑返回值就是显示出来的内容例:

	

zenity --text-info --filename=/home/flow/--editable

随便打开了一个文件Linux对话框程序zenity使用大全 - flow - 发现ubuntu!

--color-selection 颜色选择--color=#00000 设置默认颜色,--show-palette 显示调色板返回值是html格式的颜色值

	

zenity --color-selection --show-palette --color=#dd6060

Linux对话框程序zenity使用大全 - flow - 发现ubuntu!

--password 选项--username 显示用户名和密码输入框例:

	

zenity --password --username

Linux对话框程序zenity使用大全 - flow - 发现ubuntu!

man手册中的例子(稍微改了下):

	

rm `zenity --title="Select a file to remove" --file-selection --multiple --separator=\ `

执行这条,就能删除选择的文件,可以多选哦。

	

find . -name '*.h' | zenity --list --title "Search Results" --text "Finding all header files.." --column "Files"

找出当前目录下所有.h的文件并输出到列表Linux对话框程序zenity使用大全 - flow - 发现ubuntu!

find $HOME -name '*.pdf' | zenity --progress --pulsate

寻找pdf文件的时候显示正在运行。Linux对话框程序zenity使用大全 - flow - 发现ubuntu!

	

zenity --list --checklist --column "Buy" --column "Item" TRUE Apples TRUE Oranges FALSE Pears FALSE Toothpaste

Linux对话框程序zenity使用大全 - flow - 发现ubuntu!

之前还写过一篇实例教材,请访问: http://bandari.fans.blog.163.com/blog/static/169418906201191404942951/还有一个外国人用zenity写的音频格式转换软件,详细介绍请看:http://bandari.fans.blog.163.com/blog/static/1694189062011528115458788/

花了四个多小时编辑的,绝对原创,要想转载请标明出处,下面附pdf格式下载地址:http://files.myopera.com/flow1058424266/files/zenity.pdf

    A+
发布日期:2017年11月08日  所属分类:未分类

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: