Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2414260
  • 博文数量: 298
  • 博客积分: 7876
  • 博客等级: 准将
  • 技术积分: 5500
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-23 13:39
文章存档

2013年(2)

2012年(142)

2011年(154)

分类: LINUX

2012-04-07 20:41:42

gtk+图形界面之zenity小结

 

转: 有改

 

§  1.

§  2.

§  3.

§  4.

§  5.

§  6.

§  7.

  • 7.1.
  • 7.2.
  • 7.3.
  • 7.4.

§  8.

§  9.

§  10.

§   11.范围对话框

1.介绍

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

§  日历

§  文件选择框

§  列表框

§  提示图标

§  消息框

§  错误框

§  信息框

§  询问框

§  警告框

§  进度框

§  文本框

§  文本信息框

2.用法

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

§  您可以创建从用户那儿获得信息的对话框。例如,您可以提示用户从日历对话框中选择日期,或者从文件选择框里选择一个文件。

§  您可以创建向用户提供信息的对话框。例如,您可以用进度条来显示一个操作的当前运行状态,或者用一个警告框提醒用户。

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

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

例如,使用 :

zenity --calendar --title="假期安排"

不要用:

zenity --calendar --title=假期安排

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

§  2.1.

§  2.2.

§  2.3.

§  2.4.

§  2.5.

§  2.6.

§  2.7.

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 环境变量来禁用。

3.日历对话框

使用 --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

     


4.文件选择对话框

使用 --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

5.通知区域图标

--text=文本

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

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

        #!/bin/sh         zenity --notification\          --window-icon="info" \

          --text="有系统更新软件包!"  


6.列表框

使用 --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 中不能运行"


7.消息框

Zenity 可以创建四种消息框:

§  错误框

§  信息框

§  询问框

§  警告框

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

§  7.1.

§  7.2.

§  7.3.

§  7.4.

7.1.错误框

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

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

          #!/bin/bash          

          zenity --error \ 

           --text="找不到 /var/log/syslog."       


7.2.信息框

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

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

          #!/bin/bash

           zenity --info \

          --text="全部合并。更新第 3 个文件,总共 10 个。"       


7.3.询问框

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

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

          #!/bin/bash

           zenity --question \

          --text="您确定要执行吗?"       


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.范围对话框

使用 --scale 选项来创建一个范围对话框。注意:

范围对话框支持以下选项:

范围选项

  --scale                                  显示范围对话框

  --text=文字                              设置对话框文字

  --value=数值                             设置初始值

  --min-value=数值                         设置最小值(必须要小于1

  --max-value=数值                         设置最大值

  --step=数值                              设置步进大小

  --print-partial                          打印部分值

  --hide-value                             隐藏值

 

使用范例:$ zenity --scale --min-value=-100 --max-value=60000 --text="test" 

 

阅读(7727) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~