简体   繁体   中英

pygtk how to embed external application within my pygtk GUI

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?

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM