相关疑难解决方法(0)

在 16.04 下运行 zenity 时出现错误消息:Gtk-Message:GtkDialog 映射而没有临时父级。这是不鼓励的

在 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 构造函数所做的。

gui gtk zenity

23
推荐指数
2
解决办法
4万
查看次数

如何在脚本中使用 Bash 重定向抑制 zenity 和 yad 中的 GtkDialog 警告?

我正在尝试抑制和 中的GtkDialog警告:zenityyad

$ zenity --error --text hello
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
Run Code Online (Sandbox Code Playgroud)

错误重定向和过滤工作:

$ zenity --error --text hello 2> >(grep -v GtkDialog >&2)
Run Code Online (Sandbox Code Playgroud)

是的...烦人的警告信息消失了!!

这可以放置在~/.bashrc开发工作中,如这里的回答:

和这里:

但是,在创建供其他人使用的脚本时,您不希望他们改变自己的~/.bashrc.


我在为以下内容创建键入快捷方式时遇到问题:2> >(grep -v GtkDialog >&2)在脚本中使用。

出于多种原因,变量赋值GTK_SPAM="2> >(grep -v GtkDialog >&2)"后跟变量使用"$GTK_SPAM"是行不通的。

alias zenity="zenity 2> >(grep -v GtkDialog >&2)" 在调用脚本工作之前,我不能在脚本中使用它。

使用数组来保存打字快捷方式不起作用:

$ aGtkSpam=(2\> \>\(grep -v GtkDialog \>\&2\))

$ DumpArray …
Run Code Online (Sandbox Code Playgroud)

command-line bash redirect

3
推荐指数
3
解决办法
1818
查看次数

抑制 gksudo 输出

当我执行 gksudo 时,我在终端中得到一些输出,我想抑制该输出,但仍然从实际命令中获得输出。例如:

$ gksudo whoami
> #some gksudo related output
> root
Run Code Online (Sandbox Code Playgroud)

当我尝试将输出转储为/dev/null这样时:

$ gksudo &> /dev/null whoami
Run Code Online (Sandbox Code Playgroud)

我得到了没有输出的提示信息,但是whoami结果也被抑制了。

command-line gksudo

0
推荐指数
1
解决办法
187
查看次数

标签 统计

command-line ×2

bash ×1

gksudo ×1

gtk ×1

gui ×1

redirect ×1

zenity ×1