任何能帮我做YAD (又一个对话)的人。
我正在为软件安装设计GUI。我被表单字段卡住了。下面是我正在使用的示例代码:
sersoft()
{
root_verify #fucntion for root verification
os_verify #function to detect the OS and its version
if [ "$ret_val" == 3 ] || [ "$ret_val" == 4 ]; then #ret_val indicates type of OS
apt-get update -y
apt-get upgrade -y
apt-get -y install gcc g++ libpcap0.8-dev build-essential
#and many other installations
service ssh restart
apt-get -y update
apt-get -y upgrade
elif [ "$ret_val" == 5 ];then
yum groupinstall "Development Tools"
yum -y install gcc libpcap-devel fontconfig-devel
#etc
yum -y update
yum -y upgrade
fi
}
MSP="Install Prerequesites for Server"
MCP="Install Prerequesites for Client"
MSP1="Software for Server"
MCP1="Software for Client"
#Welcome Tab
yad --plug=$KEY --tabnum=1 --form --image="$banner" --separator='\n' --quoted-output \
> $res4 &
#Prerequesites Tab
yad --plug=$KEY --tabnum=2 --form --separator='\n' --text="\n\nPlease install the required softwares needed to configure Monosek software. \n\nClick any one of the options.\n\n" --text-align=center --quoted-output \
--field="$MSP!gtk-yes:2":FBTN --align=center \
--field="$MCP!gtk-yes:3":FBTN --align=center > $res1 &
#Installation Tab
action=$(yad --plug=$KEY --tabnum=3 --form --seperator='\n' --quoted-output \
--field="Select:CBE" "\--Install\--!$MSP1!$MCP1") > $res2 &
#Main Dialog
yad --center --fixed --notebook --key=$KEY --tab-pos=left --tab="Welcome Tab" --tab="Prerequesites" --tab="Install" \
--title="Software Setup Wizard" --image="$icon" \
--button="OK:0" \
--button="Exit:1" \
--height=560 --width=665 --image-on-top --text=" Software version $VERSION"
case $action in
$MSP1*) TAB2=install_ser_soft ;;
$MCP1*) TAB3=instal_client_soft ;;
*) yad --center --text="error"
;;
esac现在的问题是,我不知道如何使按钮工作。假设我单击按钮MSP,它应该调用函数install_pre_ser,该函数包含安装基本软件的命令。这同样适用于另一个按钮。
有人能帮助我吗,因为我已经尝试了几乎所有的可能性,从过去的几天。预先多谢:-)
发布于 2016-11-15 16:28:34
代码的一部分action=$(yad .)由于yad输出(而不是操作)由于>$res2而转到$res2文件中,所以无法工作。
在您的代码中,您需要应用action=$(cat $res2),然后运行案例检查。
无论如何,通过为安装函数调用应用不同的方法,我能够使您的代码在我的计算机中工作:
function sersoft {
yad --text "Server Prerequesites Will be installed now"
}
export -f sersoft
function clientsoft {
yad --text "Client Prerequesites Will be installed now"
}
export -f clientsoft
function install_ser_soft {
yad --text "Server SOFTWARE to be installed now"
}
function install_client_soft {
yad --text "Client SOFTWARE to be installed now"
}
MSP="Install Prerequesites for Server"
MCP="Install Prerequesites for Client"
MSP1="Software for Server"
MCP1="Software for Client"
yad --plug=12346 --tabnum=1 --form --image="abp.png" --separator='\n' &\
yad --plug=12346 --tabnum=2 --form --separator='\n' --text="Please install softwares" --text-align=center \
--field="$MSP!gtk-yes:2:FBTN" "bash -c sersoft" --align=center --field="$MCP!gtk-yes:3:FBTN" "bash -c clientsoft" \
--align=center &\
action=$(yad --plug=12346 --tabnum=3 --form --seperator=' ' --field="Select:CBE" "\--Install\--!$MSP1!$MCP1" &\
yad --center --notebook --key=12346 --tab="Welcome Tab" --tab="Prerequesites" --tab="Install" --title="Software Setup Wizard" --image="abp.png" --button="OK:0" --button="Exit:1" --height=560 --width=665 --image-on-top --text="Software version 3")
ret=$?
echo "output=" $ret
echo "answer=" $action
case $action in
$MSP1*) install_ser_soft ;;
$MCP1*) install_client_soft ;;
*) yad --center --text="error";;
esac 试试我的测试,让我知道它是否适合你。
PS:这里有一个很好的教程,可以帮助您完成项目:http://smokey01.com/yad/
https://stackoverflow.com/questions/40609812
复制相似问题