创建处理程序
import wximport wx.lib.neweventimport logging# create event typewxLogEvent, EVT_WX_LOG_EVENT = wx.lib.newevent.NewEvent()class wxLogHandler(logging.Handler): """ A handler class which sends log strings to a wx object """ def __init__(self, wxDest=None): """ Initialize the handler @param wxDest: the destination object to post the event to @type wxDest: wx.Window """ logging.Handler.__init__(self) self.wxDest = wxDest self.level = logging.DEBUG def flush(self): """ does nothing for this handler """ def emit(self, record): """ Emit a record. """ try: msg = self.format(record) evt = wxLogEvent(message=msg,levelname=record.levelname) wx.PostEvent(self.wxDest,evt) except (KeyboardInterrupt, SystemExit): raise except: self.handleError(record)
然后由您掌控
self.Bind(EVT_WX_LOG_EVENT, self.onLogEvent)def onLogEvent(self,event): ''' Add event.message to text window ''' msg = event.message.strip("r")+"n" self.logwindow.AppendText(msg) # or whatevery event.Skip()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)