当前位置:  开发笔记 > 编程语言 > 正文

如何使用任何Python GUI框架在我的应用程序中嵌入一些应用程序窗口

如何解决《如何使用任何PythonGUI框架在我的应用程序中嵌入一些应用程序窗口》经验,为你挑选了1个好方法。

我希望一些应用程序在我的Python应用程序中看起来像widget.

就这样.我不需要他们之间的任何互动.我对windows和x windows的任何 GUI工具包中的解决方案感兴趣.

与Tkinter建立解决方案会很好,但这并不重要.



1> Glyph..:

在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()


@Hibou57哦,我很久以前就解决了这个问题.:)谢谢你的努力.我所做的是`object.child_focus(gtk.DIR_TAB_FORWARD)`,`object`是套接字.
推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有