曲径通幽论坛

标题: zenity -- 创建 GNOME 环境窗口 [打印本页]

作者: beyes    时间: 2011-5-6 15:26
标题: zenity -- 创建 GNOME 环境窗口
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 命令来创建小部件




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2