Zenity

您所在的位置:网站首页 linux关闭图形化界面命令 Zenity

Zenity

2023-08-21 03:59| 来源: 网络整理| 查看: 265

Zenity是一个开源和跨平台的应用程序,它在命令行中显示GTK +对话框并使用shell脚本。

GNU Linux的操作系统建立在非常强大的内核称为Linux。 Linux以其命令行操作而闻名。 随着Linux在日常和桌面计算中的发明,linux保持不再偏向命令行,它同样是图形化和开发图形应用程序保持不再是一个困难的任务。如下图所示about对话框的实现:

                                                                                        Zenity显示图形对话框

Zenity是什么?

        zenity是一个开源和显示GTK +对话框的命令行和使用shell脚本一个跨平台的应用程序。 它允许在图形框中向/从shell请求和呈现信息。 该应用程序允许您在命令行中创建图形对话框,并使用户和shell之间的交互非常容易。

Zenity的特性 轻松创建GUI使用shell脚本可以与GUI用户进行交互 在Linux中安装Zenity

Zentity默认安装或者在今天大多数的标准Linux发行库可用。 您可以通过执行以下命令检查是否安装到您的机器上。

zenity --version

如果它没有安装,可以使用如下命令进行安装。

sudo apt-get install zenity Zenity概述

通过about对话框可以看出Zenity的使用非常容易,接下来我们对它的各种可能状态进行详细地介绍。下表列出了可以创建的对话框的主要类型。

类型用于创建类型的选项含义列表对话框--list使用 --list 选项创建一个列表对话框,Zenity 在标准输出返回选中行的第一列项目。 --list --checklist如果使用 --list --checklist选项,每一行必须以“TRUE”或“FALSE”开始,多选列表 --list --radiolist如果使用 --list --radiolist选项,每一行必须以“TRUE”或“FALSE”开始,单选列表文件选择框--file-selection创建一个文件选择对话框,Zenity 在标准输出返回选中的文件或目录消息对话框--info信息对话框,同时显示一个OK按钮 --warning警告对话框,同时显示一个OK按钮 --error错误对话框,同时显示一个OK按钮 --question问题对话框,同时显示一个YES/NO按钮范围对话框--sclae创建一个带滚动条的范围对话框进度条对话框--progress创建一个进度条对话框文本输入对话框--entry创建一个文本输入对话框,将文本框的内容返回到标准输出文本信息框--text-info创建一个文本信息框,类似于条款readme Zenity基本用法

当您写了 Zenity 命令,确保每个文本参数用双引号“ ”括起来。例如,使用:zenity --calendar --title="假日计划"。如果您没有使用引号,可能会产生不可预料的结果。注意:宽度、高度、超时要用单引号' '括起来。

      控件返回值=$(zenity --控件)。

      echo $?返回的是控件成功与否

Zenity退出代码:

退出代码描述0按下确定或关闭1按下取消或者窗口的关闭按钮-1发生了意外的错误5

对话框因超时关闭

Zenity常规选项:

常规选项描述--title=标题指定对话框的标题--window-icon=图标路径

指定显示在对话窗口框上的图标

--width=宽度指定对话框的宽度--height=高度指定对话框的高度--timeout=超时指定超出时间(秒)后对话框自动关闭 Zenity基本对话框 

一些的zenity的基本对话框,它可以直接在命令行调用的。 

1.快速日历对话框怎么样?

zenity --calendar

                                                                                      Zenity日历对话框

2.列表对话框

使用 --list 选项创建一个列表对话框,Zenity 在标准输出返回选中行的第一列项目。对话框里的数据必须指定行和列,可以由标准输入提供,每一项都必须由换行符分隔。如果在--list下使用--checklist 或 --radiolist 选项,每一行必须以“TRUE”或“FALSE”开始,表示选中状态,返回选中行的第二列项目。          列表框支持以下选项:

        --column=“列标题”:指定列表对话框显示的列标题。您必须为每个要显示的列,用 --column 选项指定一个列标题。         --checklist:指定列表框的第一列包含一个复选框。         --radiolist:指定列表框的第一列包含单选按钮。         --editable:指定显示的项可以编辑。         --separator=“分隔符”:指定列表框返回选中项时使用的字符。         --print-column=列:指定选择列上显示什么,默认是“1”,“ALL”用于在列表上显示所有列(要用双引号“”)。

下面的例子显示脚本如何创建一个列表对话框:

#!/bin/sh zenity --list \ --title="Choose the Bugs You Wish to View" \ --column="Bug Number" --column="Serverity" --column="Description" \ 992383 Normal "多选时 GtkTreeView 崩溃" \ 293823 High "GNOME 字典不能使用代理" \ 393823 Critical "菜单编辑器在 GNOME 2.0 中不能运行"

列表对话框实例:

3.文件选择对话框

使用 --file-selection 选项创建一个文件选择对话框。Zenity 在标准输出返回选中的文件或目录。默认的文件选择对话框模式是打开对话框。         文件选择对话框支持以下选项:         --filename=文件名:指定文件选择对话框在第一次显示时,选定的文件或文件夹。         --multiple:允许在文件选择对话框里选中多个文件名。         --directory:在文件选择对话框里只允许选中文件夹。         --save:设置文件选择对话框模式为保存对话框。         --separator=分隔符:指定用于分隔返回的文件名列表的字符。        下面的脚本示范了如何创建一个文件选择对话框:

#!/bin/sh FILE=`zenity --file-selection --title="Select a File"` case $? in 0) echo "\"$FILE\" 被选中。";; 1) echo "没有选择文件。";; -1) echo "发生意外错误。";; esac

文本选择对话框实例:

4.消息对话框            对于每一种类型,使用 --text 选项来指定在对话框里显示的文本。         4.1.信息对话框         使用 --info 选项。

#!/bin/bash zenity --info --text="合并完成。更新了 3 / 10 个文件。"

4.2.警告对话框

使用--warning选项

#!/bin/bash zenity --warning --text="拔下电源线,避免触电。"

4.3.错误对话框

使用--error选项

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

4.4.问题对话框

使用--question选项

#!/bin/bash zenity --question --text="您确认要继续吗?"

5.范围对话框  (zenity --scale)         使用 --scale 选项创建一个范围对话框。         范围对话框支持以下选项:         --text=文本:设置对话框文本。(默认:调整范围值)         --value=值:设置初始值。(默认:0)您必须在最小值和最大值之间指定一个值。         --min-value=值:设置最小值。(默认:0)         --max-value=值:设置最大值。(默认:100)         --step=值:设置步长。(默认:1)         --print-partial:将值打印为标准输出,无论值何时变化。         --hide-value:隐藏对话框中的值。         下面的脚本示范了如何创建一个范围对话框:

#!/bin/sh VALUE=`zenity --scale --text="选择窗口透明度。" --value=50` case $? in 0) echo "您选中了 $VALUE%。";; 1) echo "未选中值。";; -1) echo "发生意外错误。";; esac

6.进度对话框  (zenity --progress)         使用 --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

7.文本输入对话框  (zenity --entry)         使用 --entry 选项创建一个文本输入对话框。Zenity 将文本框的内容返回到标准输出。         文本输入框支持以下选项:         --text=文本:指定在文本输入框中显示的文本。         --entry-text=文本:指定在文本框的文本域里显示的文本。         --hide-text:隐藏文本框中输入的字段内容。         下面的脚本示范了如何创建一个文本输入对话框:

#!/bin/sh if zenity --entry \ --title="添加新配置" \ --text="输入新配置的名称:" \ --entry-text "新配置" then echo $? else echo "未输入名称" fi

array=(a b c d)表示数组,${array[@]}表示a b c d,可以显示一个带列表的entry对话框

#!/bin/sh array=(a b c d) zenity --entry ${array[@]}

8.文本信息框  (zenity --text-info)         使用 --text-info 选项来创建一个文本信息框(老版本只支持前两个选项)。         文本信息框支持以下选项:         --filename=文件名:指定一个加载到文本信息框里的文件。         --editable:显示的文本允许编辑,当对话框关闭后,编辑后的文本显示到显示器上。         --font=字体:指定文本字体。         --checkbox=文本:启用复选框,如“我已阅读并接受该条款。”         下面的脚本示范了如何创建一个文本信息对话框:

#!/bin/sh # You must place file "COPYING" in same folder of this script. FILE=`dirname $0`/COPYING zenity --text-info \ --title="License" \ --filename=$FILE \ --checkbox="I read and accept the terms." case $? in 0) echo "Start installation!";; 1) echo "Stop installation!";; -1) echo "An unexpected error has occurred.";; esac

参考:

https://www.howtoing.com/zenity-creates-graphical-gtk-dialog-boxes-in-command-line-and-shell-scripts/

https://help.gnome.org/users/zenity/



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3