I'm desiging a pygtk GUI and wan开发者_如何学编程t to embed an external application into it.
Does anyone have any idea how this can be done?
It depends on what application you are trying to embed into yours, but if the other app is a GTK app (or one that supports the XEMBED protocol), you should be able to do this with gtk.Plug and gtk.Socket. The PyGTK tutorial has a section explaining how to do this:
http://www.pygtk.org/pygtk2tutorial/sec-PlugsAndSockets.html
This one might help. Read the article 19.15. How do I embed something using Plugs and Sockets? (http://faq.pygtk.org/index.py?req=all#19.15) and find out how to embed arbitrary X Window application into (Py)GTK Socket.
You don't use an external program to get the gtk.Plug
/gtk.Socket
ID, they have their respective functions for that. See this tutorial for examples: link.
If you're trying to reparent an external window (that may not be a gtk window), you can use
w = gdk.window_foreign_new(window_id)
to get a gdk window object from an operating system window handle, and then use
w.reparent(parent_window, x, y)
to reparent it into an existing gtk container.
精彩评论