大家好,我是明哥,
關注得早的讀者,應該還記得去年的今天,也就是情人節,明哥給大家整了一個 表白神器,這個神器是用 Python 寫的一個小腳本,它可以將你女神的照片轉換成由字符組成的另一張照片,大概的效果如下,
這是轉換前的

這是轉換后的(注意放大看)

整個腳本的代碼雖然只有 20 行左右,但是大家都知道 Python 腳本的運行是需要 Python 環境的,如果這個腳本中有使用第三方庫的話,還需要額外安裝一堆 Python 庫,這也就意味著,對于一個毫無 Python 使用經驗的同學來說,想要把腳本跑起來,還是比較困難的,
剛好今年的情人節,我還沒有想到好的 idea,不如把去年的這個工具,使用 tkinter 封裝成一個 exe 可執行檔案,讓所有人都可以使用起來~
先給大家看下這個 exe 程式的成品界面

我把這個 exe 上傳到網盤上了:https://wws.lanzous.com/igrjGlnxw9i
接下來,我會復述一下我是如何在完全沒有 GUI 編程基礎的情況下,在 2 個小時里把這個程式寫出來的,
0. 準備作業
在開始真正寫代碼之前,需要大概去預研一下,要寫出這樣一個 GUI 界面,需要準備哪些東西?
- 繪制原型:想要把軟體做成啥樣子?找找看有沒有工具可以畫這種軟體原型圖的,
- 學習GUI編程:了解 Python 的GUI編程框架有哪些,選一個最易上手的進行學習
- 打包成exe:了解并學習如何把 Python 腳本打包成 exe 檔案
1. 繪制模型
有寫書經驗的人就會知道,選好題后,并不是直接就開始寫文章了,一般在寫之前,要先把書的大綱給列出來,
寫 GUI 軟體界面也是如此,在真正開發界面之前,必然要先根據功能畫出軟體的模型圖,
在這個原型圖上,可以直觀看出,軟體要實作哪些功能,怎么實作?用下拉選擇呢還是手動輸入?
軟體的原型圖繪制,我使用的是之前一直在用的 http://drao.io 這個在線工具,

從原型圖上可以看出來,我這個軟體要實作的一些基本功能
開始制作:把源圖片轉換成字符組成的目標圖片重新制作:若初次制作不滿意,可以點此重新制作,這樣不用關閉再打開軟體放大預覽:轉換完成后,會保存到指定目錄,點這個按鈕就可以直接進行預覽下載原始碼:可能會有同學想學習這塊代碼,所以加了這個入口,
2. GUI編程
在今天之前,我都沒有學習過 GUI 編程框架,經過簡單的了解和對比之后,選擇了最輕量的內置 GUI 框架 - tkinter,
是的,這玩意是內置的,
但是如果你在自己的電腦上 import tkinter 是有可能會報沒有找到 tkinter 這個庫的,
這是怎么回事呢?
原來,在你安裝 Python 解釋器的時候,就已經有這個選項,讓你自行選擇,

那如果你之前,忘了勾選上這個選項,要想重新安裝,我有簡單搜索了下,好像是比較麻煩的,
不過,好在我想到了一個非常方便快捷的方法,就是在你已經安裝了 Python 解釋器的情況下,再去雙擊 Python解釋器安裝檔案,就會彈出這樣一個界面,點擊 Modify,就會再次進入上面讓你選擇 tcl/tk 的界面,勾選之后 ,一路 Next 就會重新在你電腦上安裝上 tkinter,

tkinter 安裝完成后,就可以根據原型圖有針對性的去學習各個控制元件,經過簡單的整理,我需要學習
- Label :標簽,用來顯示文字
- Button:按鈕,用來觸發事件
- Combobox:下拉串列,用來選擇字體
- Canvas:畫布,用來顯示圖片
- filedialog:對話框,用于選擇圖片以及保存路徑
- messagebox:訊息彈窗,用來給用戶提示和警告
有了這個學習路徑,靠著 Google 觀察了幾個 Demo 后,直接就可以上手代碼了,

3. 打包成exe
打包工具,大家都知道使用 pyinstaller,對于單檔案的腳本來說,這個工具還是比較好駕馭的,
使用下面這一條命令,就會生成一個 dist 目錄,打開一看會有一個 love-tool.exe 的檔案,
$ pyinstaller -F -w --hidden-import=tkinter -i ming.ico -y love_tool.py
其中幾個引數的意思是:
-F:制作獨立的可執行程式-w:運行exe時,不打開控制臺視窗-i:指定軟體的圖示--hidden-import=tkinter:匯入tkinter包
由于我的 Python 程式中,會參考兩個本地的圖片,因此生成 exe 后并不能立即執行,得先把我的兩張圖片先放入到 exe的同級目錄,

這個時候就再雙擊 love-tool.exe 就正常啦

4. 例外的處理
當用戶還沒有選擇源圖片的時候,是理論上是無法轉換的,因此這種情況下點 開始制作,就要給了提示

同樣的,如果用戶還沒轉換完成,也是不能進行 放大預覽 的,

5. 寫在最后
這個軟體并沒有對代碼進行講解,主要是對整個開發流程進行復述,有對代碼感興趣的同學,可以點這個鏈接(https://wws.lanzous.com/igrjGlnxw9i)下載 exe 后,點擊 下載原始碼 就可以了,
最后,希望這個工具能給你和女神之間增添一點小樂趣~
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/259783.html
標籤:其他
