Differences between revisions 4 and 32 (spanning 28 versions)
Revision 4 as of 2005-07-28 15:53:53
Size: 1296
Editor: flyaflya
Comment:
Revision 32 as of 2009-12-25 07:16:32
Size: 2819
Editor: localhost
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,喜欢写程序,玩游戏

邮件: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)