问题
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?
回答1:
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
回答2:
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.
回答3:
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.
回答4:
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.
来源:https://stackoverflow.com/questions/2023698/pygtk-how-to-embed-external-application-within-my-pygtk-gui