wxpython textctrl动态显示_wxpython 实时,重定向stdout输出到textctrl

我使用wxpython并且自定义了stdout重定向输出到一个textctrl(文本控件)但是只有在程序执行完之后才全部一起输出,我想要它实时输出,应该怎么办?能不能给我一个完整的案例。以下是...

我使用wxpython 并且自定义了stdout重定向输出到一个textctrl (文本控件)

但是只有在程序执行完之后才全部一起输出,我想要它实时输出 ,应该怎么办? 能不能给我一个完整的案例。

以下是我的案例:

import sys,time

import wx

class RedirectText(object):

def __init__(self,aWxTextCtrl):

self.out=aWxTextCtrl

def write(self,string):

self.out.WriteText(string)

class MyForm(wx.Frame):

def __init__(self):

wx.Frame.__init__(self, None, wx.ID_ANY, "wxPython Redirect Tutorial")

# Add a panel so it looks the correct on all platforms

panel = wx.Panel(self, wx.ID_ANY)

log = wx.TextCtrl(panel, wx.ID_ANY, size=(300,100),

style = wx.TE_MULTILINE|wx.TE_READONLY|wx.HSCROLL)

btn = wx.Button(panel, wx.ID_ANY, 'Push me!')

self.Bind(wx.EVT_BUTTON, self.onButton, btn)

# Add widgets to a sizer

sizer = wx.BoxSizer(wx.VERTICAL)

sizer.Add(log, 1, wx.ALL|wx.EXPAND, 5)

sizer.Add(btn, 0, wx.ALL|wx.CENTER, 5)

panel.SetSizer(sizer)

# redirect text here

redir=RedirectText(log)

sys.stdout=redir

def onButton(self, event):

print "You pressed the button!"

time.sleep(5)

print "======End====="

# Run the program

if __name__ == "__main__":

app = wx.PySimpleApp()

frame = MyForm().Show()

app.MainLoop()

展开

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值