PPC上的Python IDE

        在 [url]http://pythonce.sourceforge.net/Wikka/VensterCE[/url]看到Pythonce里的另一套界面库。安装比较简单,从 [url]http://sourceforge.net/projects/vensterce[/url]上,下载VensterCE最新的压缩包,解压,将里面的venster目录复制到Python安装目录的Lib\里面就行。VensterCE需要ctypes包。
        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中的打开、保存文件窗体,方便多拉。

你可能感兴趣的:(职场,休闲,pythonce,2003se,venster)