zenity 允许使用命令行选项创建窗口小部件。比如运行:
$zenity --calendar
便可以产生一个日历小部件窗口,如下图所示:
![]()
如果点击 OK 退出,那么还会将当前日期返回到命令行中:$ zenity --calendar
05/06/2011 下表列出了 zenity 可以创建的不同小部件:
选项
| 描述
| --calendar
| 显示一个完整的日立
| --entry
| 显示一个文本输入对话框窗口
| --error
| 显示一个错误消息对话框窗口
| --file-selection
| 显示完整的路径名和文件名对话框窗口
| --info
| 显示信息对话框窗口
| --list
| 显示检查列表或单选框列表对话框窗口
| --notification
| 显示一个通知图标
| --progress
| 显示一个进度栏对话框窗口
| --question
| 显示一个 yes/no 问题对话框窗口
| --scale
| 显示一个刻度比例对话框窗口
| --text-info
| 显示一个含有文字的文本框
| --warning
| 显示一个警告对话框窗口
|
下面是一段测试脚本:
[Bash shell] 纯文本查看 复制代码 #!/bin/bash
temp=`mktemp -t temp.XXXXXX`
temp2=`mktemp -t temp.XXXXXX`
function diskspace {
df -h > $temp
zenity --text-info --title "Disk space" --filename=$temp --width 750 --height 50
}
function whois {
whoami > $temp
zenity --text-info --title "Who am i" --filename=$temp --width 760 --height 40
}
function memusage {
cat /proc/meminfo > $temp
zenity --text-info --title "memory usage" --filename=$temp --width 300 --height 500
}
while [ 1 ]
do
zenity --list --radiolist --title "System Admin" --column "Select" --column "Menu Item" FALSE "Disk space" FALSE "Who am i" FALSE "Memory usage" FALSE "Exit" > $temp2
if [ $? -eq 1 ]
then
break
fi
selection=`cat $temp2`
case $selection in
"Disk space")
diskspace ;;
"Who am i")
whois ;;
"Memory usage")
memusage ;;
"Exit")
break ;;
*)
zenity --info "Sorry, wrong selection"
esac
done
上面,在制作菜单时,使用 FALSE 表示不进行预选。--column 选项将一个对话框氛围两列。--radiolist 选项是使用单选按钮。
另外,如果是 KDE 环境,那么使用 kdialog 命令来创建小部件 |