我想为使用 bash 的应用程序构建一个简单的 GUI,例如单击一个按钮就会执行一些 bash 命令等等。
有一个简单的 GUI 创建器,我只需要按钮和文本区域,而不需要学习新的编程语言?
答案1
我发布了一个答案这里,这可能会有用,为了方便起见,我将再次将其放在这里。
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
上述脚本将显示如下表单:
输入数据并单击“确定”或按键盘上的回车键后,表单数据将写入名为 test.txt 的文本文件,我使用 awk 来分隔表单数据,它是一个以竖线作为字段分隔符的字符串,我相信有一种直接的方法可以在不使用 awk 的情况下获取数据,但我不是这方面的专家,请查看项目主页并提出问题,您可能会找到更优雅的方式。
如何获取并安装 yad 请点击这里:
http://www.webupd8.org/2010/12/yad-zenity-on-steroids-display.html
yad 项目主页:
更多示例在这里:
http://technostripe.com/yad-a-fork-of-zenity-with-more-features/
http://code.google.com/p/yad/wiki/Examples
目前还没有表单设计器,但是由于语法非常简单并且非常接近 zenity,所以这通常不是问题。
答案2
对于简单的用户输入,您可以使用zenity
(位于zenity
包中)。一个简单的例子可能是这样的:
VARIABLE=$(zenity --entry --title="Give me inputz" --text="Write some stuff")
echo $VARIABLE
对于文本区域(就像我们在 HTML 世界中所说的那样),您可以将语法更改为如下形式:
zenity --text-info --title="Give me inputz" --editable
您可以从中找到更多信息它的手册。这是一个非常灵活的小型库,可在简单的脚本中输入用户输入。
编辑:您还可以找到一些Linuxaria 上有很好的例子。
答案3
看看这个: http://sites.google.com/site/easybashgui
你用:
source easybashgui
input 2 "Address" "?" "Name" "?"
cp "$dir_tmp/$file_tmp" "test.txt"
clean_temp
答案4
尝试特克巴什。
您可以指定这样的元素
tkbash 1 button b1 -x 0 -y 0 -w 100 -h 30 -t "click me" --command "notify-send hi"