为 bash 应用程序创建 gui 的快速方法

Mat*_*zzi 6 gui command-line bash scripts programming

我想为使用 bash 的应用程序构建一个简单的 GUI,例如单击按钮将执行一些 bash 命令等等。

有一个 GUI 创建器也很简单,我只需要不需要学习新编程语言的按钮和文本区域?

Sab*_*con 9

我在这里发布了一个答案,这可能很有用,为方便起见,我将再次放在这里。

Yad 在这方面可能很有用,它是 zenity 的一个分支,具有更多功能,其中之一是创建表单的能力。

这是一个非常简单的表单示例:

#!/bin/bash


frmdata=$(yad --title "Test Form" --form --field "Address" --field="Name")


frmaddr=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $1 }')
frmname=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $2 }')

echo $frmaddr > test.txt
echo $frmname >> test.txt
Run Code Online (Sandbox Code Playgroud)

上面的脚本将显示这样的表单:

在此处输入图片说明

输入数据并单击确定或按键盘上的 Enter 后,表单数据将写入名为 test.txt 的文本文件,我使用 awk 分隔表单数据,该数据是一个以管道作为字段分隔符的字符串,我相信有一种不用awk的直接获取数据的方法,但我不是yad专家,请查看项目主页并提出问题,您可能会找到更优雅的方法。

如何在此处获取和安装 yad:

http://www.webupd8.org/2010/12/yad-zenity-on-steroids-display.html

yad项目之家:

http://code.google.com/p/yad/

更多例子在这里:

http://technostripe.com/yad-a-fork-of-zenity-with-more-features/

http://code.google.com/p/yad/wiki/Examples

目前还没有表单设计器,但由于语法非常简单且非常接近 zenity,所以这通常不是问题。


Oli*_*Oli 7

对于简单的用户输入,您可以使用zenity(位于zenity包中)。一个简单的例子可能是这样的:

VARIABLE=$(zenity --entry --title="Give me inputz" --text="Write some stuff")
echo $VARIABLE
Run Code Online (Sandbox Code Playgroud)

对于 textarea(正如我们在 HTML 世界中所说的那样),您可以将语法更改为如下所示:

zenity --text-info --title="Give me inputz" --editable
Run Code Online (Sandbox Code Playgroud)

您可以从它的手册中找到更多信息。这是一个非常灵活的小库用户输入的简单脚本。

编辑:您还可以在 Linuxaria 上找到一些很好的例子。