手册:https://help.gnome.org/users/zenity/stable/index.html.en
不少发行版本中集成了 zenity
例子
显示一条信息 zenity --info --title "提示" --text="显示信息"
常规选项
--title=title
标题
--window-icon=icon_path
图标
--width=width
宽度
--height=height
高度
--timeout=timeout
超时 (秒)
--help-all
显示所有帮助信息
--help
显示所有帮助信息
返回值
Exit Code | Description 描述 |
---|---|
0 | 一般为按下确定键 |
1 | 一般为按下取消键 |
-1 | 发生了错误 |
5 | 对话框因为超时而关闭 |
常用例子
输入表单
zenity --forms <# 显示 forms #> `
--title="添加好友" <# 标题 #> `
--text="请输入您朋友的信息。" <# 描述 #> `
--separator="," <# 输出结果分隔, 默认 | #> `
--add-entry="名" <# 添加一个输入框 #> `
--add-entry="姓" <# 添加一个输入框 #> `
--add-entry="电子邮件" <# 添加一个输入框 #> `
--add-calendar="生日" <# 添加一个日历选择器 #> `
--forms-date-format="%Y-%m-%d" <# 日期格式化模式 #>
# 返回 csv 格式字符串
# $LASTEXITCODE 0 按了确认, 1 按了取消
返回是否判断
zenity --question --text="同意按是,不同意按否"
输入文本
$title = zenity --entry `
--title="请输入文件标题" `
--text="请输入文件标题作为文档名称" `
--entry-text "NewProfile.txt"
if($LASTEXITCODE -eq 0) {
Write-Host "用户输入的标题是: $title"
} else {
Write-Host "用户取消了输入"
}
显示进度条
zenity --progress <# 显示进度条 #> `
--title="工作完成进度" <# 标题 #> `
--text="开始工作" <# 描述 #> `
--percentage=0 <# 初始百分比 #> `
--auto-close <# 达到 100% 后自动关闭 #> `
--pulsate <# 显示动态效果 #>
# pwsh 中工作有点复杂,它接收输入流更新进度
$title = '工作完成进度'
$text = '开始工作'
$psi = New-Object System.Diagnostics.ProcessStartInfo
$psi.FileName = "zenity"
$psi.Arguments = "--progress --title=`"$title`" --text=`"$text`" --percentage=0 --auto-close"
$psi.UseShellExecute = $false
$psi.RedirectStandardInput = $true
$process = [System.Diagnostics.Process]::Start($psi)
Start-Sleep -Milliseconds 500
for ($i = 0; $i -le 100; $i += 10) {
$process.StandardInput.WriteLine($i) # 输出数值修改进度
$process.StandardInput.WriteLine("# 进度: $i%") # 输出 # 修改 text
Start-Sleep -Milliseconds 500
}
$process.StandardInput.Close()
$process.WaitForExit()