Size: 1296
Comment:
|
← Revision 32 as of 2009-12-25 07:16:32 ⇥
Size: 2819
Comment: converted to 1.6 markup
|
Deletions are marked like this. | Additions are marked like this. |
Line 2: | Line 2: |
flyaflya,喜欢写程序,玩游戏。 == python == === 代码段 === ==== ini文件类 ==== |
flyaflya,喜欢写程序,玩游戏 邮件:{{http://services.nexodyne.com/email/icon/ImSmGJE8W5c%3D/EJhYC.c%3D/R01haWw%3D/0/image.png}} = python = == 代码段 == === ini类 === 一个好用的ini类,像使用dict一样简单易用。 {{{ #!python |
Line 43: | Line 49: |
== pygame == ---- ["个人网页类"] |
}}} == wxpython == === 换肤的实现 === 简单测试: {{attachment:skintest3.jpg}} 如果只用通用控件(不用Panel),可以实现完美换肤.... {{attachment:skinnewedit.jpg}} 对newedit进行换肤,好玩.... 原理是用win32com调用ActiveSkin实现的,因为wxpython的控件是native的,加上ActiveSkin支持COM,我也是突发奇想试了一下,想不到成功了,不过ActiveSkin是商业组件,而且现在已经停了,想买都没法买了,只有用盗版,而且只能在windows下用,有一些控件也不能很好支持,问题太多,所以我一直没公开这个技术,后来我试了很多支持COM的换肤控件包,都不关用。现在有人问起这个问题,就说一下。只需要增加三行代码。 需要安装:[[attachment:ActiveSkin43.rar]] {{{ #!python import wx, win32com.client .... class MyApp(wx.App): def OnInit(self): self.skinLib = win32com.client.Dispatch("ActiveSkin4.Skin2") #载入ActiveSkin self.skinLib.LoadSkin("Paper.skn") #载入皮肤 frame = MyFrame(None, "Simple wxPython App") self.SetTopWindow (frame) self.skinLib.ApplySkin(frame.GetHandle()) #使用皮肤 }}} <<Include(pygame)>> <<Include(DesignPattern)>> == 扩展与嵌入 == [[Swig]] - 强悍的库扩展工具 == Panda3d == [[Panda3d]] - 3d游戏库 |
个人介绍
flyaflya,喜欢写程序,玩游戏
邮件:
python
代码段
ini类
一个好用的ini类,像使用dict一样简单易用。
1 import ConfigParser
2 import string
3
4 class IniSettings(dict):
5 def __init__(self, filename):
6 self.filename = filename
7 self.__loadConfig()
8 # Load the ini file into a dictionarie
9 def __loadConfig(self):
10 self.clear()
11 cp = ConfigParser.ConfigParser()
12 cp.read(self.filename)
13 for sec in cp.sections():
14 settings={}
15 name = string.lower(sec)
16 for opt in cp.options(sec):
17 settings[string.lower(opt)] = string.strip(cp.get(sec, opt))
18 self.__setitem__(name,settings)
19
20 def reload(self):
21 """Reload the config file"""
22 self.settings = self.__loadConfig()
23
24 def save(self):
25 """save the config file"""
26 inifile = open(self.filename, 'w')
27 for group in self.keys():
28 inifile.write("\n["+group+"]\n")
29 for key in self[group].keys():
30 inifile.write(str(key)+"="+str(self[group][key])+"\n")
31
32
33 if __name__ == '__main__':
34 settings = IniSettings('settings.ini')
35 settings["t"]["tt"] = "ddd"
36 settings.save()
wxpython
换肤的实现
简单测试:
如果只用通用控件(不用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]
1. 设计模式总说
1.1. 创建型模式
Singleton(单件) - SingletonPattern
1.2. 结构型模式
Proxy(代理) - ProxyPattern
Flyweight(享元) - FlyweightPattern
1.3. 行为模式
Chain of Responsibility(职责链) - CORPattern
Observer(观察者)- ObserverPattern
Template Method(模板方法) - TemplateMethodPattern
Visitor(访问者)- VisitorPattern
Command(命令) - CommandPattern
state(代理) - StatePattern
2. 反馈
扩展与嵌入
Swig - 强悍的库扩展工具
Panda3d
Panda3d - 3d游戏库