Gooey計畫支持用一行程式碼將(幾乎)任何Python控制台程式轉換為GUI應用程式。
1.快速開始
開始之前,你要確保Python和pip已經成功安裝在電腦上。
(方式一)安裝Gooey的最簡單方法是透過 PIP:
pip install Gooey
(方式二)或者,可以透過將計畫複制到本地目錄來安裝Gooey
git clone https://github.com/chriskiehl/Gooey.git
解壓後進入該資料夾,執行 setup.py:
python setup.py install
2.使用方法
Gooey 透過將一個簡單的裝飾器附加到主函式上,然後使用GooeyParser可將你所有需要用到的參數視覺化為文字域、選擇框甚至是檔選擇框。
比如在 的文章中,我們需要輸入兩個參數:1.關鍵詞,2.下載篇數,使用Gooey可以這麽改:
from gooey import Gooey, GooeyParser
@Gooey
defmain():
parser = GooeyParser(description="中文環境可用的scihub下載器 - @Python實用寶典")
parser.add_argument('path', help="下載路徑", widget="DirChooser")
parser.add_argument('keywords', help="關鍵詞")
parser.add_argument('limit', help="下載篇數")
args = parser.parse_args()
search(args.keywords, int(args.limit), args.path)
GooeyParser 和 ArgumentParser 一樣,使用 add_argument 就可以增加輸入參數,不同的是 GooeyParser 提供了視覺化的選項:
parser.add_argument('path', help="下載路徑", widget="DirChooser")
這一行程式碼,widget 參數給 args.path 變量提供了一個目錄選擇器( widget="DirChooser" ),help參數用於提醒使用者該選擇器的作用,效果如下:
當你不提供widget參數時,程式預設使用文本輸入框。
parser.add_argument('keywords', help="關鍵詞")
parser.add_argument('limit', help="下載篇數")
Gooey會自動編排你的參數,因此你不需要擔心各個文字域或選擇框的顯示問題。
程式碼中
的:
args = parser.parse_args()
search(args.keywords, int(args.limit), args.path)
args = parser.parse_args() 可以將使用者輸入的所有文本轉化為對應物件的變量值,透過 args.var 可以直接提取對應的變量值。
這個簡單的視覺化程式完整程式碼及效果如下:
上滑檢視更多程式碼
import asyncio
from scihub import SciHub
from gooey import Gooey, GooeyParser
defsearch(keywords: str, limit: int, path: str):
"""
搜尋相關論文並下載
Args:
keywords (str): 關鍵詞
limit (int): 篇數
path (str): 下載路徑
"""
sh = SciHub()
result = sh.search(keywords, limit=limit)
print(result)
loop = asyncio.get_event_loop()
# 獲取所有需要下載的scihub直鏈
tasks = [sh.async_get_direct_url(paper["url"]) for paper in result.get("papers", [])]
all_direct_urls = loop.run_until_complete(asyncio.gather(*tasks))
print(all_direct_urls)
# 下載所有論文
loop.run_until_complete(sh.async_download(loop, all_direct_urls, path=path))
loop.close()
@Gooey
defmain():
parser = GooeyParser(description="中文環境可用的scihub下載器 - @Python實用寶典")
parser.add_argument('path', help="下載路徑", widget="DirChooser")
parser.add_argument('keywords', help="關鍵詞")
parser.add_argument('limit', help="下載篇數")
args = parser.parse_args()
search(args.keywords, int(args.limit), args.path)
main()
當然你也完全可以使用自己的程式進行圖形界面化。
3.支持的widget元件
所有支持的widget元件如下:
1.勾選框 widget="CheckBox"
2.下拉框 widget="DropDown"
3.互斥選擇框 widget="RadioGroup"
4.各種目標型別的選擇框
檔選擇框
widget="FileChooser"
目錄選擇框
widget="DirChooser"
多檔選擇框
widget="MultiFileChooser"
檔保存目錄
widget="FileSaver"
5.日期/時間選擇器 widget="DateChooser/TimeChooser"
6.密碼輸入框 wiget="PasswordField"
7.多選列表框 widget="Listbox"
8.顏色選擇器 widget="ColourChooser"
9.可過濾的下拉框 widget="FilterableDropdown"
10.滑片 widget="Slider"
4.打包
在一切都測試完畢後使用正常後,你可以透過 pyinstaller 將這個視覺化程式打包成exe可執行檔。
1.編寫 PyInstaller buildspec
PyInstaller使用 buildspec 來確定如何捆綁計畫。你可以在Python實用寶典後台回復 buildspec 下載 build.spec.txt.
下載後你只需要改兩行程式碼:
如下所示:
在路徑前面帶r,可以不用輸入兩個斜桿 '\' 哦。
2.執行打包命令
為了能夠使用 PyInstaller, 我們需要使用pip安裝這個模組:
pip install pyinstaller
然後進入 build.spec.text 所在資料夾,執行以下命令打包程式:
pyinstaller build.spec.txt
打包完成後會在當前資料夾下生成一個dist資料夾,裏面就包含了你打包生成的可執行檔,打包成功。
Crossin的新書【 碼上行動:用ChatGPT學會Python編程 】已經上市了。 本書以ChatGPT為輔助,系統全面地講解了如何掌握Python編程,適合Python零基礎入門的讀者學習。
購買後可加入讀者交流群,Crossin為你開啟陪讀模式,解答你在閱讀本書時的一切疑問。
Crossin的其他書籍:
添加微信 crossin123 ,加入編程教室共同學習 ~
感謝 轉發 和 點贊 的各位~