0

通过使用以下代码,我可以得到我认为的 Nautilus 桌面窗口:

screen = wnck.screen_get_default()
while gtk.events_pending():
    gtk.main_iteration()
for window in screen.get_windows():
    if window.get_name() == 'x-nautilus-desktop':
        xid = window.get_xid()
        wrapped_window = gtk.gdk.window_foreign_new(xid)

但是当我尝试执行 Wrapped_window.add() 时,我得到窗口对象没有 add 方法的错误。

我知道这是可以做到的,因为有人已经在http://www.youtube.com/watch?v=NOlIfhXQX9g上有演示效果的 youtube 视频,但我不知道如何获取背景窗口并在上面放置一个小部件它。

有人知道该怎么做吗?

4

1 回答 1

0

你在混淆gtk.Windowgtk.gdk.Window。他们不一样。前者是顶层桌面窗口,用作 GTK 小部件的容器;后者是可以在上面绘制的屏幕区域的抽象,而不是容器。

您无法使用 libwnck 获取应用程序的 GTK 小部件。如何达到你想要的效果我不知道,但我认为你需要更多地研究扩展窗口管理器,因为那是管理桌面的东西。

于 2011-05-19T05:45:13.067 回答