在 ubuntu 16.04 下,我收到以下消息
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged
Run Code Online (Sandbox Code Playgroud)
当我用命令打开 zenity 时
zenity --text-info --filename=<filename>
Run Code Online (Sandbox Code Playgroud)
这在 14.04 下不会发生。我认为答案与这篇文章有关,但这篇文章没有解释如何实施建议的解决方案。有人可以解释一下我应该将建议的行添加到哪个文件吗?
您可以通过为 GtkDialog 提供一个模态的父级来修复此警告。相关的函数是 gtk_window_set_transient_for()(它设置这个窗口总是在另一个窗口的顶部或瞬态)和可选的 gtk_window_set_modal() 以使其成为一个模态对话框。这最终是各种 GtkDialog 构造函数所做的。
我正在编写自己的脚本来下载多个项目(同时,每个命令一个项目)wget,我需要一个进度条。我目前zenity --progress用于我的进度条,但问题是它在下载时会产生多个进度条。
我想要实现的是类似于 Nautilus 中的文件传输对话框:

任何人都可以向我指出正确的方向,哪些程序或语言将实现这一目标。
注意: 我只有 shell 脚本的基本知识,其他的不多。
我刚刚发现 zenity 支持 html 标签。
zenity --error --text "hello <b>world</b>"
Run Code Online (Sandbox Code Playgroud)
但是如何使它与entrytype 一起工作?
zenity --entry --text "hello <b>world</b>"
Run Code Online (Sandbox Code Playgroud)
它是打印标签而不是解释它们。
我偶然发现可以显示带有 zenity 的组合框(测试版本:2.32.1)。请参阅以下代码:
#!/bin/bash
array=(a b c d e)
value=$(zenity --entry --title "Window title" --text "${array[@]}" --text "Insert your choice.")
Run Code Online (Sandbox Code Playgroud)
结果用以下 3 张图像说明:



我有两个问题:
是否有关于此功能的文档?我在zenity 文档中没有找到任何内容。
为什么我的数组的第一个值没有出现在组合框中?在上面的例子中,我的数组是(a b c d e),组合框只显示b c d e。
作为一种解决方法,我在数组中添加了一个值,例如(0 a b c d e).
示例脚本error.sh:
#! /bin/bash
zenity --error --text='Something very bad has happened!'
Run Code Online (Sandbox Code Playgroud)
我的incron-config:
~/Documents IN_MOVED_TO ~/scripts/error.sh
Run Code Online (Sandbox Code Playgroud)
如果我error.sh在终端 GUI 对话框中运行会弹出,但不会在上面的 incron 场景中运行。
当我在 Documents 文件夹中移动文件时,如何让 zenity 弹出该对话框?
我正在使用 Kubuntu 18.04:
$ zenity --version
3.28.1
Run Code Online (Sandbox Code Playgroud)
我想显示一个--list带有 zenity的对话框,但我不想显示“取消”按钮(实际上,如果也没有“确定”,我也可以)。使用以下--no-cancel选项应该很容易:
$ zenity --list --no-cancel
--no-cancel is not supported for this dialog
Run Code Online (Sandbox Code Playgroud)
输出似乎表明 zenity 知道该选项,但不想让我使用它。
我只想向用户显示表格中的数据。我不在乎选择/编辑或返回结果。
有什么替代方法吗?或者zenity根本无法做到这一点?
我需要为两个 Bash 列表(文件)记录中的每一个显示一些文本以及项目(大约 15 个值)。在同一屏幕上,我需要呈现三向选择(按钮、滚动选择窗口等)。
我是一个 Ubuntu(11.04) 脚本菜鸟,刚刚开始在脚本中使用 Zenity。我的朋友推荐了YAD。
我可以在 YAD 中完成所有这些还是使用我们不知道的其他简单的 GUI 工具?
.
我是新手zenity,我正在尝试制作一个简单的脚本来加载文件,zenity --file-selection并使用wc命令来获取该文件的字数。我已经成功制作了一个可用于浏览文件的表单,但我无法获得任何输出。你能告诉我我在哪里犯了错误吗?
我目前的脚本是:
#creates a box
if zenity --entry \
--title="Word count" \
--text="Enter file location" \
--entry-text "File path"
then
#Zenity file selection code for browsing and selecting files
FILE=`zenity --file-selection --title="Select a File"`
case $? in
0)
echo "\"$FILE\" selected.";;
1)
echo "No file selected.";;
-1)
echo "An unexpected error has occurred.";;
esac
# To show the location in the text box
if zenity --entry \
--title="Word count" \
--text="Enter file location" …Run Code Online (Sandbox Code Playgroud) zenity当数据包含空格时,我在加载列表对话框时遇到问题。
当列出的数据中没有空格时,这是直接的,
但我不知道空间嵌入文件名的简单/标准方法。
出于某种原因, $( ls -Q /tmp) (引用输出)的输出仍然
在每个空格处拆分文件名。输出中的引号和反斜杠
ls | sed似乎被视为“最终字符串”而不是
“可读数据行”(如前两个数据行)......
我已经设法“解决这个问题”,但自我修改代码可能
不是最好的方法!(尽管它很有趣!:)
这是不起作用的方法
zenlist="/tmp/zen list"; touch "$zenlist"
zenity --list --title='A single-column List' --width=600 --height=450 \
--column='Spaces are allowed within "q u o t e s"' \
"How much wood would a woodchuck chuck," \
"if a wooodchuck could chuck wood?" \
$(ls -Q -1 "$zenlist"* |sed 's/$/ \\/')
echo ""
# rm "$zenlist" # Uncomment this line to delete the file
Run Code Online (Sandbox Code Playgroud)
这种方法有效,但必须有“常规”(更好)的方法!?
zenlist="/tmp/zen …Run Code Online (Sandbox Code Playgroud) 我使用的是 Ubuntu 20.04,并且我已经使用 Ubuntu 软件安装了 Microsoft Teams。
我的问题是我在开始团队时总是遇到这个烦人的对话框。我说了是和不是很多次。无论我单击“团队开始”什么,下次都会再次出现该对话框。
对话框:
Allow settings change?
Allow snap "teams-for-linux" to change "default-url-scheme-handler" subproperty "msteams" to "teams-for-linux_teams-for-linux.desktop"
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何删除或阻止此对话框?