Размещение Webkit на рабочем столе Nautilus (на Ubuntu Maverick) с помощью PyGTK - PullRequest
0 голосов
/ 18 мая 2011

Я могу получить то, что я считаю окном рабочего стола 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.

Я знаю, что это можно сделать, поскольку у кого-то уже есть видео на YouTube, демонстрирующее эффект на http://www.youtube.com/watch?v=NOlIfhXQX9g, но я не могу понять, как получить фоновое окно и разместить на нем виджет.

Кто-нибудь знает, как это сделать?

1 Ответ

0 голосов
/ 19 мая 2011

Вы смешиваете gtk.Window и gtk.gdk.Window. Они не то же самое. Первый представляет собой окно рабочего стола верхнего уровня и функционирует как контейнер для виджетов GTK; последний является абстракцией области экрана, которая может быть нарисована поверх, и не является контейнером.

Вы не можете получить виджеты GTK приложения, используя libwnck. Как добиться желаемого эффекта, я не знаю, но я думаю, что вам нужно больше взглянуть на расширение оконного менеджера, поскольку именно этим управляет рабочий стол.

...