Size: 156
Comment:
|
Size: 2759
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 2: | Line 2: |
flyaflya,喜欢写程序,玩游戏,擅长游戏开发,熟悉C++和python。目前在用pygame开发桌面游戏。 == pygame == |
flyaflya,喜欢写程序,玩游戏 邮件:http://services.nexodyne.com/email/icon/ImSmGJE8W5c%3D/EJhYC.c%3D/R01haWw%3D/0/image.png = python = == 代码段 == === ini类 === 一个好用的ini类,像使用dict一样简单易用。 {{{ #!python import ConfigParser import string class IniSettings(dict): def __init__(self, filename): self.filename = filename self.__loadConfig() # Load the ini file into a dictionarie def __loadConfig(self): self.clear() cp = ConfigParser.ConfigParser() cp.read(self.filename) for sec in cp.sections(): settings={} name = string.lower(sec) for opt in cp.options(sec): settings[string.lower(opt)] = string.strip(cp.get(sec, opt)) self.__setitem__(name,settings) def reload(self): """Reload the config file""" self.settings = self.__loadConfig() def save(self): """save the config file""" inifile = open(self.filename, 'w') for group in self.keys(): inifile.write("\n["+group+"]\n") for key in self[group].keys(): inifile.write(str(key)+"="+str(self[group][key])+"\n") if __name__ == '__main__': settings = IniSettings('settings.ini') settings["t"]["tt"] = "ddd" settings.save() }}} == 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"] - 强悍的库扩展工具 |
个人介绍
flyaflya,喜欢写程序,玩游戏
邮件:http://services.nexodyne.com/email/icon/ImSmGJE8W5c%3D/EJhYC.c%3D/R01haWw%3D/0/image.png
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
换肤的实现
简单测试:
attachment:skintest3.jpg
如果只用通用控件(不用Panel),可以实现完美换肤....
attachment:skinnewedit.jpg
对newedit进行换肤,好玩....
原理是用win32com调用ActiveSkin实现的,因为wxpython的控件是native的,加上ActiveSkin支持COM,我也是突发奇想试了一下,想不到成功了,不过ActiveSkin是商业组件,而且现在已经停了,想买都没法买了,只有用盗版,而且只能在windows下用,有一些控件也不能很好支持,问题太多,所以我一直没公开这个技术,后来我试了很多支持COM的换肤控件包,都不关用。现在有人问起这个问题,就说一下。只需要增加三行代码。 需要安装:attachment: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()) #使用皮肤
Include(pygame) Include(DesignPattern)
扩展与嵌入
["Swig"] - 强悍的库扩展工具