将实时输出显示到wx.TextCtrl

时间:2011-04-08 18:50:43

标签: python wxpython wxtextctrl

我目前正在使用模块wxPython,Pcapy和impacket在Ubuntu中构建一个wi-fi数据包捕获实用程序。我在wxPython中创建了GUI,并且引用了其他模块的捕获代码,但是将两者结合起来很困难。听起来很愚蠢,我发现很难让wx.txtctrl在GUI上显示捕获的数据包,而是继续使用命令行。

无论是全局定义textctrl还是允许显示其上的代码的函数?

如果有人能够解决这个问题,那将非常感激

非常感谢

1 个答案:

答案 0 :(得分:1)

如果要将发送到stdout的所有内容(例如,由print语句发出)重定向到文本控件,则可以使用自己的模拟文件对象的对象替换sys.stdout。 / p>

您可以使用StringIO类,然后定期将其累积值发送到文本控件(使用计时器)。您还可以子类化StringIO,覆盖其write方法,并在收到每个文本片段后立即将新内容发送到文本控件。

然而,这不是一个很好的解决方案,感觉就像猴子修补一样。