虽然项目中用到了 SkinSharp 但是仍然有些panel 和默认颜色不一致,
如果我要将系统中所有的panel默认设置成其他颜色,岂不是要一个一个去改?
其实有更简洁的方案,在程序启动前执行InstallSkin,那么wx.Panel的默认背景就完全被修改
这完全得益于 Python的灵活性
def SkinWarper(fn):
def wrapper(*args, **kv):
fn(*args, **kv)
args[0].SetBackgroundColour('#cae1f3')
return wrapper
def InstallSkin():
wx.Panel.__init__=SkinWarper(wx.Panel.__init__)