pygtk how to embed external application within my

2019-04-25 09:06发布

问题:

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.