1

我的操作系统是Ubuntu 11.10,我从终端启动Sublime Text 2,每次操作终端都会出现这个Gdk-warning,很烦人。如何解决?

$ subl . &
[1] 4294
$ 
(subl:4294): Gdk-WARNING **: /build/buildd/gtk+2.0-2.24.6/gdk/x11/gdkdrawable-x11.c:952 drawable is not a pixmap or window
(subl:4294): Gdk-WARNING **: /build/buildd/gtk+2.0-2.24.6/gdk/x11/gdkdrawable-x11.c:952 drawable is not a pixmap or window
(subl:4294): Gdk-WARNING **: /build/buildd/gtk+2.0-2.24.6/gdk/x11/gdkdrawable-x11.c:952 drawable is not a pixmap or window
4

3 回答 3

3

要解决此问题,您必须查看应用程序的源代码,对其进行修复并重新编译。Gdk 发出警告,但这可能是因为应用程序滥用了该库。

不幸的是,在 Gtk+ 应用程序上看到这些错误有点常见......太糟糕了,一些开发人员不关心修复它们......

另一种解决方案是启动应用程序,将其重定向stdout和/或重定向stderr到其他地方:subl . > /dev/null 2>&1 &

于 2012-05-02T12:18:59.777 回答
2

我知道的老问题,但万一其他人被这个错误刺痛了。这是因为该程序使用了 gtk 的输入法api,它大致允许您将中文和日文字符输入到输入小部件中。api不好用,有很多坑。见http://lists.maemo.org/pipermail//maemo-developers/2006-January/002337.html

在这种情况下,程序很可能不会gtk_im_context_set_client_window使用已实现的 gdk 窗口进行调用。正确使用 api 是一项要求,但文档对此并不十分清楚。然后,您在每次按键时都会收到上述警告,但前提您实际上运行了IBus守护程序。大多数人没有任何用处,因为他们不需要输入亚洲字符,所以他们永远不会看到警告。

于 2015-09-28T12:41:34.470 回答
1

一个非常古老的问题的另一个答案,但在从 wxpython 2.8 升级到 wxpython 3.0 之后,我遇到了同样的问题。
这个问题似乎源于 gtk.gtk.Drawable() 可能稍微改变了它处理窗口身份的方式或 wxpython 3.0 如何处理对窗口 ID 的请求。
要访问曾经工作的窗口 ID(在 Linux 上)GetHandle(),它不再起作用,而是在上面的问题中出现错误。您现在必须使用GetId().

引用gtk手册:

Attributes
"handle"    Read    The handle of the MS Windows window associated with the drawable. Not supported on X11.
"xid"   Read    The id of the X window available with the drawable. Not supported on MS Windows

我很欣赏这不是 wxpython 问题,但如果gtk以其他方式使用,同样的规则将适用。

于 2017-01-02T09:25:04.010 回答