Question

I'm desiging a pygtk GUI and want to embed an external application into it.

Does anyone have any idea how this can be done?

Was it helpful?

Solution

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

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top