我希望一些应用程序在我的Python应用程序中看起来像widget.
就这样.我不需要他们之间的任何互动.我对windows和x windows的任何 GUI工具包中的解决方案感兴趣.
与Tkinter建立解决方案会很好,但这并不重要.
在X窗口(即Linux,FreeBSD,Solaris)上使用GTK,您可以使用XEMBED协议来嵌入小部件gtk.Socket
.不幸的是,您启动的应用程序必须明确支持它,以便您可以告诉它嵌入自己.有些应用程序不支持此功能.值得注意的是,我无法找到使用Firefox的方法.
尽管如此,这是一个示例程序,它将在GTK窗口中运行X终端或Emacs会话:
import os import gtk from gtk import Socket, Button, Window, VBox, HBox w = Window() e = Button("Emacs") x = Button("XTerm") s = Socket() v = VBox() h = HBox() w.add(v) v.add(s) h.add(e) h.add(x) v.pack_start(h, expand=False) def runemacs(btn): x.set_sensitive(False); e.set_sensitive(False) os.spawnlp(os.P_NOWAIT, "emacs", "emacs", "--parent-id", str(s.get_id())) def runxterm(btn): x.set_sensitive(False); e.set_sensitive(False) os.spawnlp(os.P_NOWAIT, "xterm", "xterm", "-into", str(s.get_id())) e.connect('clicked', runemacs) x.connect('clicked', runxterm) w.show_all() gtk.main()