嵌入vte。如何使用wxPython实现与此PyGtk应用程序相同的功能?

嵌入vte。如何使用wxPython实现与此PyGtk应用程序相同的功能?,python,wxpython,vte,Python,Wxpython,Vte,这是我的第一篇文章。我每天都在Stackoverflow上阅读很多主题,我很感激能在那里找到一些帮助。 今天轮到我提问了,因为我没有找到解决问题的办法 我想在我正在编写的应用程序中有一个终端;我(读了很多关于很多(子进程、线程、pty等)的书,但我没有找到一个简单的解决方案,这是用pygtk和vte编写的。下面是代码: #!/usr/bin/env python # -*- coding: utf-8 -*- import pygtk pygtk.require('2.0') import g

这是我的第一篇文章。我每天都在Stackoverflow上阅读很多主题,我很感激能在那里找到一些帮助。 今天轮到我提问了,因为我没有找到解决问题的办法

我想在我正在编写的应用程序中有一个终端;我(读了很多关于很多(子进程、线程、pty等)的书,但我没有找到一个简单的解决方案,这是用pygtk和vte编写的。下面是代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import pygtk
pygtk.require('2.0')
import gtk, vte

window = gtk.Window()
window.resize(600,400)
window.show()

term  = vte.Terminal()
pid   = term.fork_command('bash')
term.set_emulation('xterm')
term.show()

window.add(term)
window.show_all()
window.connect("destroy", lambda w: gtk.main_quit())
gtk.main()
你知道用wxPython做这件事的方法吗

非常感谢你的帮助,非常感谢!!:)

Edit0:

我必须指出:

  • 我说的是bash shell(如上面的代码所示),而不是python shell
  • 我是为linux写的
Edit1:

谢谢你的回答!:)

乔兰,我已经读过这个问题了,我试过了所有建议的代码。虽然这很有趣,但你可以在我的问题中看到,这不是我想要的方式。编写一个重新创建终端仿真器的应用程序似乎非常困难

这就是为什么我在寻找像我提出的代码那样的解决方案

蟒蛇,我看不出你的想法和我的问题之间有什么关系

谢谢你的帮助

Edit2

请看以下简短代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
import os
import pty


shell = os.environ['SHELL']
script = open('typescript', 'w')

def read(fd):
    data = os.read(fd, 1024)
    script.write(data)
    return data

pty.spawn(shell, read)
有没有想过用wxpython将其“放入”一个小部件中

Edit3

你也看看这个:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import pexpect


c = pexpect.spawn ('bash -i')
c.interact()
c.kill(1) 
这么简单,这么容易做


告诉我是否不可能将其嵌入wx小部件。

在过去一两个月里,我已经看到这个问题出现过好几次。答案是否定的,wxPython没有这种能力。您必须使用子流程启动某些东西并与之通信。

不知道,也许您应该看看guake的代码?我已经编辑了我的问题。希望我能给它带来更多的精确性…我的问题有了新版本。。。还是希望能找到帮助:)没问题。我真希望有一个跨平台的小部件来支持这类事情。