我正在设计一个 pygtk GUI,并希望将外部应用程序嵌入其中。
有人知道如何做到这一点吗?
这取决于您尝试嵌入到您的应用程序中的应用程序,但如果另一个应用程序是 GTK 应用程序(或支持 XEMBED 协议的应用程序),您应该能够使用 gtk.Plug 和 gtk 来完成此操作。插座。 PyGTK 教程中有一个部分解释了如何执行此操作:
PyGTK 2.0 教程 - 插头和插座 来自 Wayback Machine (archive.org)
这个可能会有所帮助。阅读文章 19.15。如何使用插头和插座嵌入某些东西? (http://faq.pygtk.org/index.py?req=all#19.15) 并了解如何将任意 X Window 应用程序嵌入到 (Py)GTK Socket 中。
如果您尝试重新设置外部窗口的父级(可能不是 gtk 窗口),您可以使用
w = gdk.window_foreign_new(window_id)
从操作系统窗口句柄获取gdk窗口对象,然后使用
w.reparent(parent_window, x, y)
将其重新设置为现有 gtk 容器。