初めての投稿です。私は、Stackoverflow で 1 日に多くのトピックを読んでいます。そして、今日は私のニーズに対する解決策が見つからなかったので、私が質問する番です。
私が書いているアプリに端末が必要です。私は(サブプロセス、スレッド、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シェル(上記のコードのように)について話しているのであって、Pythonシェルではありません
- 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 ウィジェットに埋め込むことが不可能かどうか教えてください。