pygtk как встроить внешнее приложение в мой графический интерфейс pygtk

Я рассматриваю графический интерфейс pygtk и хочу встроить в него внешнее приложение.

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

Это зависит от того, какое приложение вы пытаетесь внедрить в свои, но если другое приложение является приложением GTK (или поддерживающим протокол XEMBED), вы должны сделать это с помощью gtk.Plug и gtk.Socket . В руководстве PyGTK есть раздел, объясняющий, как это сделать:

http://www.pygtk.org/pygtk2tutorial/sec-PlugsAndSockets.html

Это может помочь. Прочтите статью 19.15. Как вставить что-то с помощью вилки и сокетов? ( http://faq.pygtk.org/index.py?req=all#19.15 ) и узнайте, как встраивать произвольное приложение X Window в (Py) GTK Socket.

Вы не используете внешнюю программу для получения gtk.Plug / gtk.Socket , у них есть свои соответствующие функции для этого. См. Этот учебник для примеров: ссылка .

Если вы пытаетесь восстановить внешнее окно (это может быть не окно gtk), вы можете использовать

 w = gdk.window_foreign_new(window_id) 

получить объект окна gdk из дескриптора окна операционной системы, а затем использовать

 w.reparent(parent_window, x, y) 

чтобы перекрыть его в существующий контейнер gtk.