Как добавить входные данные в командной строке из wxPython? - PullRequest
0 голосов
/ 04 октября 2011

Итак, у меня есть этот код на 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 голосов
/ 05 октября 2011

Обычно, когда у вас длительный процесс, вам нужно использовать поток.См. Wiki.wxpython.org/LongRunningTasks для нескольких примеров решений.Когда вы получите запрос пароля, вы можете отправить какое-то уведомление в графический интерфейс для отображения диалогового окна, используя wx.CallAfter или wx.PostEvent.Есть способы общения с потоком, но я оставлю вас в Google за это, поскольку это выходит за рамки простого ответа.

...