这是我的第一篇文章。我每天在 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 做到这一点的方法吗?
非常感谢您的帮助,非常感谢!!:)
编辑0:
我必须准确地说:
- 我说的是 bash shell(如上面的代码),而不是 python shell
- 我为 linux 写的
编辑1:
感谢您的回答!:)
Joran,我已经阅读了这个问题,并且我已经尝试了所有建议的代码。尽管这很有趣,但这不是我想要的方式,正如您在我的问题中看到的那样。编写一个重新创建终端模拟器的应用程序似乎非常困难。
这就是为什么我正在寻找像我提出的代码这样的解决方案。
pythonm,我看不出你的想法和我的问题之间的关系......
谢谢你的帮助!
编辑2
请看这个短代码:
#!/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 将其“放入”小部件中吗?
编辑3
也看一下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pexpect
c = pexpect.spawn ('bash -i')
c.interact()
c.kill(1)
如此简单,如此容易做到……
告诉我是否不可能将其嵌入到 wx 小部件中。