我想在wxpython中使用ssh。下面的gui显示。我想在textctrl中显示ssh输出,并在textctrl中输入命令。 it is the gui snapshot
我认为我应该将ssh的输出重定向到up textctrl,并将down textctrl中的cmd文本发送到ssh。我写的代码很烂,ShellFrameBase是wxFormBuilder生成的gui类。
class ShellFrame(ShellFrameBase):
def __init__(self, parent):
ShellFrameBase.__init__(self, parent)
t = threading.Thread(target=self.run_shell)
t.start()
def run_shell(self):
args = "ssh -v user@remote"
# args = "ping 8.8.8.8"
self.shell = subprocess.Popen(args.split(), stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
for line in self.shell.stdout:
wx.CallAfter(self.shell_text.AppendText, line)
def send_cmd(self, event):
cmd = self.cmd_text.GetValue()
self.shell.stdin.write(cmd + '\n')
self.shell.stdin.flush()
if __name__ == '__main__':
app = wx.App(False)
frame = ShellFrame(None)
frame.Show(True)
app.MainLoop()
我不知道该怎么办。有人会给我一个线索吗?或者我可以用其他方式做到这一点?