用最少的程式碼,做一個功能齊全的GUI應用,Python中Gooey庫的妙用

前面內容我們介紹了argparse庫的使用。本節,我們來詳細瞭解下另一個第三方庫—Gooey,主要介紹它的常用控制元件及一些全域性配置引數。

用最少的程式碼,做一個功能齊全的GUI應用,Python中Gooey庫的妙用

什麼是Gooey

這個問題,我們來看下官網怎麼說?

Turn (almost) any Python 3 Console Program into a GUI application with one line

翻譯過來是這樣的:

用一行程式碼將(幾乎)任何 Python 3 控制檯程式變成 GUI 應用程式

用最少的程式碼,做一個功能齊全的GUI應用,Python中Gooey庫的妙用

引數秒變GUI應用

這個庫是基於wxpython開發的一個第三方庫。

它長啥樣?

我們用一個例子來展示下Gooey為我們提供的控制元件,這裡沒有進行擴充套件,喜歡的小夥伴自己新增功能。根據所要解析引數的型別,大致將這些控制元件分為三種類型(原始碼見文末):

第一類:接收基本型別的控制元件

(比如:文字輸入框、密碼輸入框、列表框、計數器、下拉列表等,透過選擇或者輸入得到基本型別的引數,如文字、數值等)

用最少的程式碼,做一個功能齊全的GUI應用,Python中Gooey庫的妙用

基本控制元件

第二類:選擇型別的控制元件

(單選框和複選框,引數為布林型別)

用最少的程式碼,做一個功能齊全的GUI應用,Python中Gooey庫的妙用

布林型別控制元件

第三類:單擊按鈕進行選擇的控制元件

(檔案、資料夾、顏色、日期等,雖然最終也是用字元型別來解析,但是它們的結果有特殊含義)

用最少的程式碼,做一個功能齊全的GUI應用,Python中Gooey庫的妙用

其它型別

詳細瞭解

我們透過下面幾個問題來了解下它

用最少的程式碼,做一個功能齊全的GUI應用,Python中Gooey庫的妙用

【如何安裝】

很簡單,第三方庫的安裝方法:

用最少的程式碼,做一個功能齊全的GUI應用,Python中Gooey庫的妙用

如何安裝

安裝方式很簡單

pip install Gooey

如果正在構建“執行並完成”、辦公室風格的指令碼、將位從 A 點到 B 點的東西,或者只是針對非程式設計師的東西,Gooey 是完美的工具。它可以讓您構建您想要的任何複雜的應用程式,同時免費獲得 GUI 端。

用最少的程式碼,做一個功能齊全的GUI應用,Python中Gooey庫的妙用

上面是官網的說法,什麼意思呢?它可以構建一些“執行並完成”的程式,簡單來講,就是不需要對結果進行多次呼叫、處理,從一次輸入,直接就可獲得輸出的GUI程式。

問題來了,哪些程式不太適合使用Gooey庫呢?

用最少的程式碼,做一個功能齊全的GUI應用,Python中Gooey庫的妙用

不適用

簡單來講,一些類似*nix哲學的使用程式。比如,您正在為自己、其他程式設計師或產生您想要捕獲並透過管道傳輸到另一個控制檯應用程式的結果的東西構建實用程式,Gooey 不適合您。

【程式適用範圍】

我們知道,一個命令列引數解析程式一般是這樣的,比如,下面建立一個傳入檔名稱的引數解析程式(下面例子摘自官網)

from argparse import ArgumentParser。。。。def main(): parser = ArgumentParser(description=“My Cool Gooey App!”) parser。add_argument(‘filename’, help=“name of the file to process”)

對於使用者,傳入一個filename引數,程式即可解析引數。如果要將這個引數傳遞改成GUI形式的呢?

直接使用GooeyParser代替ArgumentParser即可,然後,add_argument()傳入一個需要展示的小部件即可。

from gooey import GooeyParser。。。。def main(): parser = GooeyParser(description=“My Cool Gooey App!”) parser。add_argument(‘filename’, help=“name of the file to process”, widget=‘FileChooser’)

【用法】

用最少的程式碼,做一個功能齊全的GUI應用,Python中Gooey庫的妙用

簡答的修改即可

沒錯,將命令列解析程式轉化為GUI應用只是需要這樣簡簡單單的修改即可。

我們來看下它有哪些可用的控制元件。