×

Raspberry Pi Linux

Zenity - 在命令行和Shell脚本中创建图形(GTK +)对话框

Kalet Kalet 发表于2019-12-31 11:25:46 浏览951 评论0

抢沙发发表评论

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


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

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

在Linux中安装Zenity

Zenity显示图形框

在这里,在这篇文章中,我们将讨论创建和使用名为“ zenity”GTK +应用程序简单的图形对话框中执行。

Zenity是什么?

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

还有其他的替代品但没有比较的zenity的简单,特别是当你不需要复杂的编程。 Zenity,一个工具,你必须有你的手。

Zenity特性

  1. FOSS软件
  2. 跨平台应用程序
  3. 允许GTK +对话框执行
  4. 命令行工具
  5. 在Shell脚本中的支持

用处

  1. 轻松创建GUI
  2. 比其他复杂工具更少的功能
  3. 使shell脚本能够与GUI用户交互
  4. 对于图形用户交互,可以进行简单的对话创建

由于的zenity适用于所有已知的主要平台,并基于GTK +库的zenity程序可以从其他平台移植到/。

在Linux中安装Zenity

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

ravisaive@howtoing:~$ zenity --version 3.8.0
ravisaive@howtoing:~$ whereis zenity zenity: /usr/bin/zenity /usr/bin/X11/zenity /usr/share/zenity /usr/share/man/man1/zenity.1.gz

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

ravisaive@howtoing:~$ sudo apt-get install zenity [on Debian based systems] root@howtoing:~# yum install zenity [on RedHat based systems]

此外,您还可以从源文件建立它,使用下面的链接下载最新的zenity源代码包(即当前版本3.8)。

  1. http://ftp.gnome.org/pub/gnome/sources/zenity/

Zenity基本对话框

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

1.快速日历对话框怎么样?
root@howtoing:~# zenity --calendar
日历对话

日历对话框

2.错误对话框
root@howtoing:~# zenity --error
错误对话

错误对话框

3.一般文本输入对话框
root@howtoing:~# zenity --entry
词条对话

条目对话框

4.信息对话框
root@howtoing:~# zenity --info
信息对话

信息对话框

5.问题对话框
root@howtoing:~# zenity --question
问题框

问题框

6.进度栏
root@howtoing:~# zenity --progress
进度条

进度条

7.缩放对话框
root@howtoing:~# zenity --scale
缩放框

缩放框

8.密码对话框
root@howtoing:~# zenity --password
密码框

密码框

9.窗体对话框
root@howtoing:~# zenity --forms
形式

形式

关于对话
root@howtoing:~# zenity --about
关于Zenity

关于Zenity

创建Shell脚本对话框

现在,我们将使用要讨论的zenity对话框创建简单的shell脚本在这里。 虽然我们可以通过执行创建一个对话框的zenity直接从shell命令(象我们上面那样),但是我们不能为了获得一些有意义的结果链接两个对话框。

如果一个交互式对话框从你的输入,并显示结果。

#!/bin/bash  first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry) zenity --info --title="Welcome" --text="Mr./Ms. $first" last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry) zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last"

将它保存到“anything.sh”(常规),不要忘记使其可执行。 坐落于anything.sh文件755权限并运行该脚本。

root@howtoing:~# chmod 755 anything.shroot@howtoing:~# sh anything.sh
输入您的名字

输入您的名字

欢迎对话

欢迎对话框

输入您的姓氏

输入您的姓氏

欢迎消息

欢迎消息

关于脚本描述

传统shebang aka hashbang

#!/bin/bash

在下面的行中,“first”是一个变量,变量的值在运行时是Generated。

    1. '-entry“指的zenity被要求生成一个文本输入框。
    2. -标题='定义生成的文本框的标题。
    3. “-text ='定义了可在文本输入框中的文本。
first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry)

以下脚本文件的这一行用于生成信息(-info)对话框,标题为“欢迎”和文本“Mr./Ms.first”

zenity --info --title="Welcome" --text="Mr./Ms. $first"

脚本的这一行类似于脚本的行号二,除了这里定义了一个新变量“last”。

last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry)

脚本的最后一行再次类似于脚本的第三行,它生成信息对话框,其中包含变量'$ first'和'$ last'。

zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last"

有关如何创建一个使用shell脚本自定义对话框的更多信息,请访问下面的参考页的zenity。

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

在接下来的文章中,我们将与GUI用户的交互更加shell脚本整合的zenity。 直到那时敬请关注,并连接到Howtoing。不要忘记在评论部分给你宝贵的反馈。

群贤毕至

访客