用Python3和tkinter開發簡單圖形介面程式 2018-09-28
阿新 • • 發佈:2019-01-13
原始碼庫: program-in-chinese/wubi_code_editor
起因在這裡. 由於此專案和漢字相關, 個人也想嘗試Python的圖形介面開發, 於是開始嘗試.
遇到的一個坑. 使用者測試時, 發現png圖片載入不了, 後發現是由於tkinter版本問題: Tkinter.PhotoImage doesn’t not support png image
現在還處於原型狀態, 兩百多行程式碼都在一個檔案中. 幾個主要問題:
- 介面需要分離, 與介面無關的部分需要新增測試用例
- 檔案路徑只支援Linux/Mac, 還需支援Windows, 參考:
- 完善功能: 支援對缺失資料的新增, 按編碼範圍匯出到不同檔案(出處); 按字搜尋; 筆順資料; 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, 很高興看到原本的純使用者成為了合作者. 最近的在國內原創開源專案中使用中文命名的意義與方式一文也受了這個例項的啟發.