我正在设计一个 pygtk GUI,并希望在其中嵌入一个外部应用程序。
有谁知道如何做到这一点?
这取决于您尝试嵌入的应用程序,但如果另一个应用程序是 GTK 应用程序(或支持 XEMBED 协议的应用程序),您应该能够使用gtk.Plug和gtk.Socket来做到这一点。PyGTK 教程有一节解释如何做到这一点:
http://www.pygtk.org/pygtk2tutorial/sec-PlugsAndSockets.html
这个可能有帮助。阅读文章 19.15。如何使用插头和插座嵌入东西?( http://faq.pygtk.org/index.py?req=all#19.15 ) 并了解如何将任意 X Window 应用程序嵌入 (Py)GTK Socket。
您不使用外部程序来获取gtk.Plug
/ gtk.Socket
ID,它们有各自的功能。有关示例,请参见本教程:链接。
如果您尝试重新设置外部窗口(可能不是 gtk 窗口),您可以使用
w = gdk.window_foreign_new(window_id)
从操作系统窗口句柄中获取 gdk 窗口对象,然后使用
w.reparent(parent_window, x, y)
将其重新放置到现有的 gtk 容器中。