如何从wxPython向命令行提示添加输入?

时间:2011-10-04 19:52:00

标签: python wxpython command-line-interface

所以我在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进行交互。是否有可能,在这种情况下你会怎么做?

1 个答案:

答案 0 :(得分:0)

通常,当您有一个长时间运行的进程时,您需要使用一个线程。有关几个示例解决方案,请参阅wiki.wxpython.org/LongRunningTasks。当您到达密码提示时,您可以向GUI发送某种通知,以使用wx.CallAfter或wx.PostEvent显示对话框。有一些方法可以与一个帖子进行交流,但我会把你留给Google,因为它超出了简单答案的范围。