當前位置: 妍妍網 > 辦公

只需一行程式碼,將Python程式轉換為圖形界面

2024-05-13辦公

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 ,加入編程教室共同學習 ~

感謝 轉發 點贊 的各位~