在Ubuntu 16.04下,我收到以下消息 Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged 当我用命令打开zenity时 zenity --text-info --filename=<filename> 在14.04下未发生这种情况。我认为答案与该帖子有关,但该帖子未解释如何实施建议的解决方案。有人可以解释一下我应该将建议的行添加到哪个文件吗? 您可以通过为GtkDialog设置父模式来解决此警告。相关函数是gtk_window_set_transient_for()(将此窗口设置为始终位于另一个窗口的顶部,或始终是另一个窗口的瞬态),还可以选择使用gtk_window_set_modal()使其成为模式对话框。最终,这就是各种GtkDialog构造函数所做的事情。
我偶然发现可以显示一个带有禅意的组合框(测试版本:2.32.1)。请参见以下代码: #!/bin/bash array=(a b c d e) value=$(zenity --entry --title "Window title" --text "${array[@]}" --text "Insert your choice.") 结果显示在以下3张图像中: 我对此有两个问题: 是否有关于此功能的文档?我没有在zenity文档中找到任何东西。 为什么数组的第一个值没有出现在组合框中?在上面的示例中,我的数组为(a b c d e),并且组合框仅显示b c d e。 解决方法是,在数组中添加一个值,例如(0 a b c d e)。