所以我在python上有这个代码,它在执行shell命令时从控制台检索输出。
def OnClick(self, event):
cmd = self.command.GetValue()
if cmd:
input, output, errors = os.popen3(cmd)
errors = errors.read()
if errors:
dlg = wx.MessageDialog(self, errors,
'An error occurred',
wx.OK | wx.ICON_EXCLAMATION)
dlg.ShowModal()
self.output.SetValue('')
else:
self.output.SetValue(output.read())
这适用于简单的打印,但我在控制台上有一个密码提示,我想从wxPython进行交互。是否有可能,在这种情况下你会怎么做?
答案 0 :(得分:0)
通常,当您有一个长时间运行的进程时,您需要使用一个线程。有关几个示例解决方案,请参阅wiki.wxpython.org/LongRunningTasks。当您到达密码提示时,您可以向GUI发送某种通知,以使用wx.CallAfter或wx.PostEvent显示对话框。有一些方法可以与一个帖子进行交流,但我会把你留给Google,因为它超出了简单答案的范围。