2010年1月12日星期二

转:wxpython 换肤

原文:http://wiki.woodpecker.org.cn/moin/flyaflya

如果只用通用控件(不用Panel),可以实现完美换肤....

对newedit进行换肤,好玩....

原理是用win32com调用ActiveSkin实现的,因为wxpython的控件是native的,加上ActiveSkin支持COM,我也是突发奇想试了一下,想不到成功了,不过ActiveSkin是商业组件,而且现在已经停了,想买都没法买了,只有用盗版,而且只能在windows下用,有一些控件也不能很好支持,问题太多,所以我一直没公开这个技术,后来我试了很多支持COM的换肤控件包,都不关用。现在有人问起这个问题,就说一下。只需要增加三行代码。 需要安装:ActiveSkin43.rar 

切换行号显示
   1 import wx, win32com.client    2 ....    3 class MyApp(wx.App):    4     def OnInit(self):    5         self.skinLib = win32com.client.Dispatch("ActiveSkin4.Skin2") #载入ActiveSkin    6         self.skinLib.LoadSkin("Paper.skn") #载入皮肤    7         frame = MyFrame(None, "Simple wxPython App")    8         self.SetTopWindow (frame)    9         self.skinLib.ApplySkin(frame.GetHandle()) #使用皮肤 

-- flyaflya [2005-08-04 09:45:16]