使用PyGTK将Webkit放到Nautilus桌面上(在Ubuntu Maverick上)

时间:2011-05-18 03:53:39

标签: python gtk pygtk desktop nautilus

我可以使用以下代码获得我认为的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()时,我得到了Window对象没有add方法的错误。

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

任何人都知道怎么做?

1 个答案:

答案 0 :(得分:0)

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

使用libwnck无法获取应用程序的GTK小部件。如何实现您想要的效果我不知道,但我认为您需要更多地考虑扩展窗口管理器,因为这是管理桌面的。