Отображение вывода в реальном времени в wx.TextCtrl - PullRequest
0 голосов
/ 08 апреля 2011

В настоящее время я работаю над созданием утилиты захвата пакетов Wi-Fi в Ubuntu, используя модули wxPython, Pcapy и impacket. Я создал графический интерфейс в wxPython и код захвата, ссылающийся на другие модули, однако объединение этих двух оказывается трудным. Как бы идиотски это не звучало, мне трудно заставить wx.txtctrl отображать захваченные пакеты в графическом интерфейсе, вместо этого они продолжают идти в командную строку.

Есть ли в любом случае глобальное определение textctrl или функции, которая позволяет отображать код на нем?

Если бы кто-то мог пролить свет на проблему, это было бы очень признательно

Большое спасибо

1 Ответ

1 голос
/ 09 апреля 2011

Если вы хотите перенаправить все данные, отправленные на stdout (например, с помощью операторов print), в свой текстовый элемент управления, то вы можете просто заменить sys.stdout своим собственным объектом, имитирующим объект файла.

Вы можете просто использовать класс StringIO , а затем периодически отправлять его накопленное значение вашему текстовому элементу управления (используя таймер).Вы также можете создать подкласс StringIO , переопределить его метод записи и отправить новое содержимое текстовому элементу управления сразу после каждого полученного фрагмента текста.

Это не очень хорошее решение, похоже на исправление обезьянОднако.

...