个人介绍

flyaflya,喜欢写程序,玩游戏

邮件:http://services.nexodyne.com/email/icon/ImSmGJE8W5c=/EJhYC.c=/R01haWw=/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

换肤的实现

简单测试:

skintest3.jpg

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

skinnewedit.jpg

对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. 创建型模式

1.2. 结构型模式

1.3. 行为模式

2. 反馈

  • 谢谢!!易读多了!不过图片就要重新上传了………… ZoomQuiet

  • 谢谢提供!感觉稍微简练了一点。 -- HoLin

扩展与嵌入

Swig - 强悍的库扩展工具

Panda3d

Panda3d - 3d游戏库

flyaflya (last edited 2009-12-25 07:16:32 by localhost)