VensterCE是封装原生的windows mobile界面控件为Python对象,由于使用系统原生的界面控件,速度快,不需要附带其他DLL;封装成Python对象后,使用上更方便。下载的包里面包含有tutorial目录,教如何使用Venster。还有个pyceide目录,里面就是一个PPC上的Python IDE实用程序。
要运行pyceide程序,需要SciLexer.dll(提供了编辑器、控制台控件)。这个DLL在shared目录,里面还有pyceide用到的一个字体文件Andale_Mono.ttf。Andale_Mono.ttf复制到windows\font\目录,SciLexer.dll复制到Python的安装目录。运行pyceide\low-res\pyceide.py文件就行(hi-res目录中的运行会出没有什么目录,不知道为什么?)。
pyceide程序有一下页面:文件编辑、控制台、类游览器(class browser)、关于。
文件编辑功能:能同时打开多个py文件进行编辑,有代码折叠功能,PYTHON语法高亮功能;
控制台:能直接执行Python语句,能运行打开的py文件;
类游览器:这个功能很好用,使用pyclbr.py模块,能分析打开的某个py文件,显示出该文件的类结构树,方便查看定位代码;
关于:关于页是使用IE游览器控件显示html内容的。
使用pyceide,在PPC上看PY文件,感觉真不错。在使用过程中,发现一个不好用的地方,就是pyceide打开文件,只能显示顶层目录中的文件(这应该是windows mobile 系统的问题)。到网上查了些资料,发现系统提供的open 窗体就这个样,真不友善。后来找到篇文章《Windows Mobile 下面最通用的浏览文件对话框代码》,里面是C的代码,了解后,觉得可行,于是尝试其中的使用tGetFile.dll方法。从
[url]http://www.onlinedown.net/soft/53771.htm[/url]下载了tGetFile.dll汉化版,将该dll复制到Python的安装目录,修改Python安装目录\lib\venster目录的comdlg.py文件,在文件最后加入以下内容:
try:
gfDll = ctypes.windll.LoadLibrary('tGetFile.dll')
except:
gfDll = None
print 'tGetFile.dll:', gfDll
def GetFileFunc(isOpen=True):
'''use tGetFile.dll
'''
if not gfDll:
return None
gfFunc = gfDll.tGetFile
if not gfFunc:
return None
return gfFunc(isOpen, byref(self))
class OpenFileDialogEx(OpenFileDialog):
def DoIt(self):
if gfDll:
return GetFileFunc()
else:
return OpenFileDialog.DoIt(self)
class SaveFileDialogEx(SaveFileDialog):
def DoIt(self):
if gfDll:
return GetFileFunc(False)
else:
return OpenFileDialog.DoIt(self)
修改pyceide.py文件,将其中所有的OpenFileDialog改为OpenFileDialogEx,其中所有的SaveFileDialog改为SaveFileDialogEx,这样就使用了tGetFile.dll中的打开、保存文件窗体,方便多拉。