wx.Log 示例
来源:互联网 发布:招商银行行情软件 编辑:程序博客网 时间:2024/04/29 16:26
- 用的 python 3.3,加上 phoenix。关于 phoenix,请猛戳这里。
- 因为没把 phoenix 放到 python 目录,而是放到当前目录了,所以 import 时候需要一点技巧。
- 之前用到 log 都是自己写个 class,其实工作量也不太大。用 wx.Log 的好处是支持多线程,比较适合在 GUI 里面用。
- verbose 的 log,默认不会显示,如果需要显示,加上这行:
wx.Log.SetVerbose(True)
示例代码:
import importlibwxpath = "wxPython_Phoenix-3.0.0.0-r75078-win64-py3.3"wx = importlib.find_loader("wx", [wxpath]).load_module()class Log(wx.LogGui):def __init__(self, tc):wx.LogGui.__init__(self)wx.Log.SetActiveTarget(self)#wx.Log.SetVerbose(True)self.tc = tc;def AppendLog(self, text, color):self.tc.SetDefaultStyle(wx.TextAttr(color))self.tc.AppendText(text+'\n')def DoLogTextAtLevel(self, level, msg):if level == wx.LOG_Error:color = wx.RED;elif level == wx.LOG_Warning:color = wx.Colour(255, 127, 0);elif level == wx.LOG_Message:color = wx.BLUE;elif level == wx.LOG_Info:color = wx.Colour(127, 127, 127);elif level == wx.LOG_Status:color = wx.Colour(0, 127, 0);else:color = wx.BLACK;self.AppendLog(msg, color);class TabLog(wx.Panel):def __init__(self, parent):wx.Panel.__init__(self, parent)sizer = wx.BoxSizer(wx.VERTICAL)self.tc = wx.TextCtrl(self, style=wx.BORDER_SUNKEN|wx.TE_MULTILINE|wx.TE_READONLY|wx.TE_RICH2|wx.HSCROLL)self.tc.SetFont(wx.Font(10, wx.FONTFAMILY_MODERN, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL))sizer.Add(self.tc, 1, wx.EXPAND)self.SetSizer(sizer)Log(self.tc)wx.LogError("Error");wx.LogWarning("Warning");wx.LogMessage("Message");wx.LogVerbose("Verbose");wx.LogStatus("Status");wx.LogSysError("SysError");class Frame(wx.Frame):def __init__(self):wx.Frame.__init__(self, None)panel = wx.Panel(self)notebook = wx.Notebook(panel, style=wx.NB_MULTILINE)tablog = TabLog(notebook)notebook.AddPage(tablog, "Log")sizer = wx.BoxSizer(wx.VERTICAL)sizer.Add(notebook, 1, wx.EXPAND)panel.SetSizer(sizer)self.Center();self.Show();if __name__ == "__main__":app = wx.App(True, "error.log")Frame()app.MainLoop()
运行结果:
- wx.Log 示例
- wxpython核心部件wx.combobox用法示例
- \wx
- wx
- wx
- wx
- wx
- wx
- wxPython定时器wx.Timer的简单应用示例
- wxPython定时器wx.Timer的简单应用示例
- wxPython定时器wx.Timer的简单应用示例
- boost::log库,示例代码
- 简单的Log文件示例
- 使用libvlc中的日志log示例
- python log模块的简单示例
- MFC 生成LOG文件的示例代码
- wxPython.wx
- wx.Dialog
- starling的一些资料
- Leetcode: Remove Nth Node From End of List
- 第9周项目1-多分段函数的值
- struts2 标签的使用之二 s:iterator
- 分析师称苹果明年夏天推更大屏幕iPhone 6
- wx.Log 示例
- 【玩转cocos2d-x之十八】仿《中国好学霸》文字拖拽和定位
- Backbone源码分析——MVC模型
- JavaScript 垃圾回收
- 笔记本开机数字小键盘自动打开问题
- [转][重构到模式-Decorator Pattern]咖啡连锁店KataStarbuzzCoffee招式-刘成章版
- JS中的call()和apply()方法
- 结构化大数据的几种计算方法(二)
- 2013-C++第9周OJ题目及参考答案