Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1378677
  • 博文数量: 370
  • 博客积分: 10654
  • 博客等级: 中将
  • 技术积分: 4396
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-07 15:44
文章分类

全部博文(370)

文章存档

2012年(36)

2011年(195)

2010年(139)

分类: LINUX

2011-05-15 19:18:40

介绍

Zenity 可以创建下列类型的简单对话框:

  • 日历

  • 文件选择框

  • 列表框

  • 提示图标

  • 消息框

    • 错误框
    • 信息框
    • 询问框
    • 警告框
  • 进度框

  • 文本框

  • 文本信息框


    用法

    在您写脚本时,可以使用Zenity 创建简单的交互式对话框,例如:

    • 您可以创建从用户那儿获得信息的对话框。例如,您可以提示用户从日历对话框中选择日期,或者从文件选择框里选择一个文件。
    • 您可以创建向用户提供信息的对话框。例如,您可以用进度条来显示一个操作的当前运行状态,或者用一个警告框提醒用户。

    当用户关闭了对话框,Zenity 将输出对话框操作的文本到显示器。

    当您写了 Zenity 命令,确保每个参数用双引号括起来。

    例如,使用 :

    zenity --calendar --title="假期安排"
    不要用:
    zenity --calendar --title=假期安排

    如果您没有使用双引号,可能会产生不可预料的结果。

    2.1. 访问键

    访问键允许您用键盘来执行一个操作,而不是用鼠标点击菜单命令或对话框按钮。每个访问键有一个标识符,是一个在菜单或对话框选项上的带下划线的字母。

    一些 Zenity 对话框支持使用访问键,要指定一个字符用于访问键,在对话框的文本字符前面加一个下划线,下面的例子是如何让字母“C”作为访问键:

    "选择(_C)".
    2.2. 退出代码

    Zenity 返回以下退出代码:

    退出代码描述
    0用户按了 确定 或 关闭
    1用户按了 取消,或者点了窗口关闭按钮。
    -1发生了一个有异常。
    5对话框因超时而关闭。
    2.3. 常规选项

    所有 Zenity 对话框支持以下常规选项:

    --title=标题

    指定对话框的标题。

    --window-icon=图标路径

    指定显示在窗口框架上的图标,有四个图标也可以用下列关键字 - 'info', 'warning', 'question' 和 'error'。

    --width=宽度

    指定对话框的宽度。

    --height=高度

    指定对话框的高度。

    --timeout=超时

    指定超出时间(秒)后对话框自动关闭。

    2.4. 帮助选项

    Zenity 提供以下帮助选项:

    --help

    显示简短的帮助文本。

    --help-all

    显示所有对话框的完整帮助。

    --help-general

    显示常规对话框选项的帮助文本。

    --help-calendar

    显示日历对话框选项的帮助文本。

    --help-entry

    显示文本输入框选项的帮助文本。

    --help-error

    显示错误框选项的帮助文本。

    --help-info

    显示信息框选项的帮助文本。

    --help-file-selection

    显示文件打开框选项的帮助文本。

    --help-list

    显示列表框选项的帮助文本。

    --help-notification

    显示提示框选项的帮助文本。

    --help-progress

    显示进度框选项的帮助文本。

    --help-question

    显示询问框选项的帮助文本。

    --help-warning

    显示警告框选项的帮助文本。

    --help-text-info

    显示信息框选项的帮助文本。

    --help-misc

    显示其他杂项的帮助文本。

    --help-gtk

    显示 GTK+ 选项的帮助文本。

    2.5. 杂项

    Zenity 也提供了其他的选项:

    --about

    显示 关于 Zenity 对话框,包含 Zenity 版本信息、版权入信息和开发信息。

    --version

    显示 Zenity 的版本号。

    2.6. GTK+ 选项

    Zenity 支持标准的 GTK+ 选项,更多 GTK+ 选项的相关信息,请输入 zenity -? 命令。

    2.7. 环境变量

    通常,Zenity 会检测启动它的终端窗口,并保持在它之上。这个行为也可以通过不设置 WINDOWID 环境变量来禁用。


    日历对话框

    使用 --calendar 选项来创建日历对话框。Zenity 返回选定的日期,并把它输出到显示器,如果没有在命令行指定日期,就使用当前系统日期。

    日历对话框支持以下选项:

    --text=文本

    指定日历对话框里显示的文本。

    --day=

    指定日历对话框中的天数,day 必须是介于 1~31 之间的数字。

    --month=

    指定日历对话框中的月份,month 必须是介于 1~12 之间的数字。

    --year=

    指定日历对话框中的年份。

    --date-format=日期格式

    指定选定的日期返回时的样式,默认的格式取决于您的区域设置,日期格式 必须可以被strftime 函数接受,例如 %A %d/%m/%y

    下面的脚本示范了如何创建一个日历对话框:

    #!/bin/sh if zenity --calendar \ --title="选择日期" \ --text="通过点击选择日期。" \ --day=10 --month=8 --year=2004 then echo $? else echo "没有选择日期" fi

    图 1日历对话框范例


    文件选择对话框

    使用 --file-selection 选项创建一个文件选择对话框,Zenity 在标准输出返回选中的文件或目录。默认的文件选择对话框模式是打开对话框。

    文件对话框支持以下选项:

    --filename=文件名

    指定文件选择对话框在第一次显示时,选定的文件或文件夹。

    --multiple

    允许在文件选择对话框里选中多个文件。

    --directory

    在文件选择对话框里只允许选中文件夹

    --save

    设置文件选择对话框模式为保存对话框。

    --separator=分隔符

    指定用于分隔返回的文件名列表的字符。

    下面的脚本示范了如何创建一个文件选择对话框:

    #!/bin/sh FILE=`zenity --file-selection --title="选择文件"` case $? in 0) echo "\"$FILE\" 被选中。";; 1) echo "没有选择文件。";; -1) echo "没有选择文件。";; esac

    图 2文件选择对话框范例




    通知区域图标

    --text=文本

    指定显示在通知区域的文本。

    下面的脚本示范了如何创建一个通知区域图标:

    #!/bin/sh zenity --notification\ --window-icon="info" \ --text="有系统更新软件包!"

    图 3通知区域图标范例

    列表框

    使用 --list 选项创建一个列表框,Zenity 在标准输出返回选中行的第一列项目。

    对话框里的数据必须指定行和列,可以由标准输入提供,每一项都必须由换行符分隔。

    如果您使用 --checklist 或 --radiolist 选项,每一行必须由“TRUE”或“FALSE”开始。

    列表框支持以下选项:

    --column=

    指定列表框显示的列标题,您必须为每个要显示的列,用 --column 指定一个列标题。

    --checklist

    指定列表框的第一列包含一个复选框。

    --radiolist

    指定列表框的第一列包含单选按钮。

    --editable

    指定显示的项可以编辑。

    --separator=分隔符

    指定当列表框返回选中项时,使用什么字符。

    --print-column=

    指定选择列上显示什么,默认是“1”,“ALL”用于在列表上显示所有列。

    下面的例子示范了如何创建一个列表框:

    #!/bin/sh zenity --list \ --title="选择您想查看的 Bugs" \ --column="Bug 编号" --column="严重" --column="描述" \ 992383 Normal "多选时 GtkTreeView 崩溃" \ 293823 High "GNOME 字典不能使用代理" \ 393823 Critical "菜单编辑器在 GNOME 2.0 中不能运行"

    图 4列表框范例

    消息框

    Zenity 可以创建四种消息框:

    • 错误框
    • 信息框
    • 询问框
    • 警告框

    对于每一种类型,使用 --text 选项来指定显示在对话框里的文本。

    7.1. 错误框

    使用 --error 选项创建一个错误框。

    下面的脚本示范了如何创建一个错误框:

    #!/bin/bash zenity --error \ --text="找不到 /var/log/syslog."

    图 5错误框范例
    7.2. 信息框

    使用 --info 选项创建一个信息框。

    下面的脚本示范了如何创建一个信息框:

    #!/bin/bash zenity --info \ --text="全部合并。更新第 3 个文件,总共 10 个。"

    图 6信息框范例
    7.3. 询问框

    使用 --question 选项创建一个询问框。

    下面的脚本示范了如何创建一个询问框:

    #!/bin/bash zenity --question \ --text="您确定要执行吗?"

    图 7询问框范例
    7.4. 警告框

    使用 --warning 选项创建一个警告框。

    下面的脚本示范了如何创建一个警告框:

    #!/bin/bash zenity --warning \ --text="断开电源以防止冲击电流。"

    图 8警告框范例

    进度框

    使用 --progress 选项创建一个进度框。

    Zenity 从标准输入一行行读取数据。如果某一行以 # 开头,进度框里的文本会被那一行上的文本替换,如果某一行只是一个数字,数字会被换成进度条的百分比。

    进度框支持以下选项:

    --text=文本

    指定显示在进度框里的文本。

    --percentage=百分比

    指定进度框开始时的百分比设定。

    --auto-close

    当达到 100% 时自动关闭对话框。

    --pulsate

    指定进度条跳动,直到从标准输入读到一个 EOF 文件结束符。

    下面的脚本示范了如何创建一个进度框:

    #!/bin/sh ( echo "10" ; sleep 1 echo "# 更新邮件日志" ; sleep 1 echo "20" ; sleep 1 echo "# 复位定时计划任务" ; sleep 1 echo "50" ; sleep 1 echo "这一行会被忽略" ; sleep 1 echo "75" ; sleep 1 echo "# 重启系统" ; sleep 1 echo "100" ; sleep 1 ) | zenity --progress \ --title="更新系统日志" \ --text="扫描邮件日志..." \ --percentage=0 if [ "$?" = -1 ] ; then zenity --error \ --text="更新被取消。" fi

    图 9进度框范例
    文本框

    使用 --entry 选项,创建一个文本框,Zenity 将文本框的内容返回到标准输出。

    文本框支持以下选项:

    --text=文本

    指定在文本框中显示的文本。

    --entry-text=文本

    指定显示在文本框的文本域里的文本。

    --hide-text

    隐藏文本框中文本域中的内容。

    下面的脚本示范了如何创建一个文本框:

    #!/bin/sh if zenity --entry \ --title="添加一项" \ --text="请输入您的密码:" \ --entry-text "密码" \ --hide-text then echo $? else echo "没有输入密码" fi

    图 10文本框范例


    文本信息框

    使用 --text-info 选项来创建一个文本信息框。

    文本信息框支持以下选项:

    --filename=文件名

    指定一个加载到文本信息框里的文件。

    --editable

    显示的文本允许编辑,当对话框关闭后,编辑后的文本显示到显示器上。

    下面的脚本示范了如何创建一个文本信息框:

    #!/bin/sh FILE=`zenity --file-selection \ --title="选择一个文件"` case $? in 0) zenity --text-info \ --title=$FILE \ --filename=$FILE \ --editable 2>/tmp/tmp.txt;; 1) echo "没有选择文件。";; -1) echo "没有选择文件.";; esac

    图 11文本信息框范例


阅读(1616) | 评论(0) | 转发(0) |
0

上一篇:getchar()函数

下一篇:顺序存储二叉树

给主人留下些什么吧!~~