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中的打開、保存文件窗體,方便多拉。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章