为 Bash 应用程序创建 GUI 的快速方法

为 Bash 应用程序创建 GUI 的快速方法

我想为使用 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://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,所以这通常不是问题。

答案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"

相关内容