回答
这取决于您试图嵌入到您的应用程序,但如果其他应用程序是GTK应用程序(或支持XEMBED协议的应用程序),则应该可以使用gtk.Plug和gtk.Socket执行此操作。该PyGTK的教程有一节解释如何做到这一点:
http://www.pygtk.org/pygtk2tutorial/sec-PlugsAndSockets.html
我没看,但我只是不看看如何能帮助我嵌入外部应用程序。 通过xwinfo报告的窗口ID是一样的东西0x12343但插头要以长格式的窗口ID ...我不知道如何这两个拼起来 – 2010-01-08 15:16:31
@ M0E-LNX:十六进制和长期之间的转换:'长(“0x12343”,16)'... – Sardathrion 2012-06-29 14:24:30
这一个可能的帮助。阅读19.15。我如何使用插头和插座嵌入某些东西? (http://faq.pygtk.org/index.py?req=all#19.15),并了解如何将任意X Window应用程序嵌入(Py)GTK套接字中。
您不需要使用外部程序来获取gtk.Plug
/gtk.Socket
ID,它们具有相应的功能。请参阅本教程中的示例:link。
如果你想重新设置父级的外窗(这可能不是一个GTK窗口),您可以使用
w = gdk.window_foreign_new(window_id)
摆脱操作系统窗口句柄GDK窗口对象,然后用
w.reparent(parent_window, x, y)
将其重新映射到现有的gtk容器中。
- 1. PyGTK阻止非GUI线程
- 2. Python GUI(tkinter; pygtk + glade),py2exe
- 3. 如何从FileChooserButton [PyGTK]
- 4. PyGtk中的Infobubble
- 5. 的PyGTK connect_signals
- 6. pygtk中的datagridview
- 7. 如何改善PyGTK GUI的外观和感觉?
- 8. pygtk的Unicode问题
- 9. 接受在PyGTK的
- 10. draggthighlight的Pygtk颜色
- 11. pygtk combobox'changed'does not work
- 12. PyGTK和visual-python
- 13. PyGTK:双击CellRenderer
- 14. PyGTK,wxPython或Tkinter?
- 15. 如何获得PyGTK方法的帮助?
- 16. 如何覆盖pygtk中的delete-event?
- 17. 如何刷新PyGTK中的DrawingArea?
- 18. 使用的PyGTK在Python中创建一个GUI创建一个子窗口的PyGTK
- 19. 用于pygtk和林间空间的数据库表的GUI
- 20. PyGTK的 - 添加行到gtk.TreeStore
- 21. 圆角矩形在pygtk的
- 22. PyGTK中的Widget透明度?
- 23. 相互依赖的PyGtk SpinButtons
- 24. 创建使用PyGTK的
- 25. 在PyGtk中的GtkMozEmbed模块
- 26. 带透明度的PyGTK StatusIcon
- 27. 的PyGTK - webkit.WebView不与Ubuntu 11.04
- 28. 的PyGTK - TreeView和选择行
- 29. 的PyGTK和分段错误
- 30. pygtk的进口GTK错误
不太清楚'嵌入'是什么意思?你能更具体地了解你的情况吗? – zdav 2010-01-07 21:40:32
“嵌入”是什么意思。 更具体一些,并举例说明。 – 2010-01-07 21:41:13
我以前在Gambas2做过这个。它应该是这样的 http://upload.snelhest.org/images/0812134.png 你可以在截图中看到的GParted如何嵌入到我的应用程序。 通过“嵌入”我的意思是启动一个外部应用程序...但不是具有窗口管理器装饰它,将它放在桌面上,它需要去直接进入我的应用程序。 认为它像做了重新设置父级,但在窗口不是一个小部件 – 2010-01-07 22:11:22