回答
這取決於您試圖嵌入到您的應用程序,但如果其他應用程序是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