如何在wxPython中向命令行提示符添加输入?

0 投票
1 回答
599 浏览
提问于 2025-04-17 03:40

我有一段Python代码,它可以在执行命令行指令时,从控制台获取输出。

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

通常,当你有一个需要长时间运行的程序时,你需要使用线程。可以去wiki.wxpython.org/LongRunningTasks看看几个示例解决方案。当你到达输入密码的提示时,可以通过wx.CallAfter或wx.PostEvent向图形界面发送通知,显示一个对话框。虽然有一些方法可以和线程进行沟通,但这些内容比较复杂,我就不在这里详细讲了,你可以自己去网上查找相关信息。

撰写回答