源碼庫: program-in-chinese/wubi_code_editor
起因在這里. 由於此項目和漢字相關, 個人也想嘗試Python的圖形界面開發, 於是開始嘗試.
遇到的一個坑. 用戶測試時, 發現png圖片加載不了, 后發現是由於tkinter版本問題: Tkinter.PhotoImage doesn't not support png image
現在還處於原型狀態, 兩百多行代碼都在一個文件中. 幾個主要問題:
- 界面需要分離, 與界面無關的部分需要添加測試用例
- 文件路徑只支持Linux/Mac, 還需支持Windows, 參考: Python 3 Quick Tip: The easy way to deal with file paths on Windows, Mac and Linux
- 完善功能: 支持對缺失數據的添加, 按編碼范圍導出到不同文件(出處); 按字搜索; 筆順數據; Unicode 編碼區
- 在VS code下開發, 還沒使用測試/調試相關功能. 參考: Python in Visual Studio Code
源碼節選:
讀入csv源數據:
def 讀入源數據文件(self, 文件名):
# 官方文檔參考: https://docs.python.org/3/library/csv.html#module-contents
with open(文件名, newline='') as 源數據文件:
源數據讀取器 = csv.reader(源數據文件, delimiter=',')
for 行 in 源數據讀取器:
self.字符列表.append(行)
導出csv文件:
def 導出文件(self):
with open(常量_修改后文件, 'w', newline='') as 目標文件:
寫文件 = csv.writer(目標文件, delimiter=',')
for 字符 in self.字符列表:
寫文件.writerow(字符)
print("修改保存到: " + 常量_修改后文件)
創建圖片顯示:
# 顯示圖片, 參考: https://stackoverflow.com/questions/35024118/how-to-load-an-image-into-a-python-3-4-tkinter-window
def 創建圖片顯示(self, 區域, 字體名, 位置):
字體區 = Frame(區域)
字體區.pack(side = 位置)
字體提示 = Label(字體區, text = 字體名)
字體提示.pack()
圖片路徑 = 常量_圖片主目錄 + 常量_圖片路徑[字體名] + self.圖片子路徑
print(圖片路徑)
try:
圖片 = PhotoImage(file=圖片路徑)
except:
print("找不到圖片")
圖片 = PhotoImage()
圖片顯示 = Label(字體區, image=圖片)
圖片顯示.image = 圖片
圖片顯示.pack()
return 圖片顯示
----------- 10/1/2018 更新 ------------
功能和重構基本完成. 還剩下一個問題"文件路徑只支持Linux/Mac, 還需支持Windows", 由於題主只在Linux下使用, 暫不打算實現.
經過添加測試, 發現了幾個bug.
承蒙題主宣傳: 感謝 xuanwu 制作五筆編碼編校軟件 Python 版 - V2EX
---------- 12/24/2018 更新 ----------
上個月題主提交了好幾個PR, 很高興看到原本的純用戶成為了合作者. 最近的在國內原創開源項目中使用中文命名的意義與方式一文也受了這個實例的啟發.