原來(lái)用它寫GUI界面就十行代碼的事,值得收藏~~

之前菜鳥小白也寫過(guò)一些小工具界面,使用的是python內(nèi)置的tkinter庫(kù),需要注意窗口、組件的大小和位置排列,比較麻煩(想了解的可以看看之前的文章《太實(shí)用了!自己動(dòng)手寫軟件——GUI編程》)。

今天菜鳥小白發(fā)現(xiàn)一個(gè)比較有趣的python項(xiàng)目,叫做Gooey,號(hào)稱能把任何控制臺(tái)應(yīng)用程序轉(zhuǎn)換為非常美觀的的GUI應(yīng)用程序。獲贊1萬(wàn)多顆星,非常厲害。

圖片

安裝

它的安裝非常簡(jiǎn)單,直接使用pip安裝即可。

pip install Gooey

一開始安裝的時(shí)候忘記截圖了,這里就不展示截圖了,安裝的時(shí)候大概需要個(gè)十幾秒的時(shí)間。

使用舉例

我們先看看下面這個(gè)簡(jiǎn)單的程序。

import gooey
from gooey import Gooey

@Gooey(encodings='utf-8', program_name='菜鳥小白的測(cè)試', program_description='舉例測(cè)試', language='chinese')
def test():
    parser = gooey.GooeyParser(description='GUI')  # 配置名稱
    parser.add_argument('選擇本地文件夾', widget='DirChooser')  # 文件夾選擇框
    parser.add_argument('選擇本地文件', widget='FileChooser')  # 文件夾選擇框
    parser.add_argument('輸入文本內(nèi)容', widget='TextField')  # 文本輸入框
    parser.add_argument('選擇日期', widget='DateChooser')  # 日期選擇框
    args = parser.parse_args()
    print(args)
if __name__ == '__main__':
    test()

程序運(yùn)行起來(lái)之后的效果是這樣的。

圖片

組件說(shuō)明

上面我們是給大家展示了一些組件的效果,當(dāng)前Gooey支持的組件空間有如下內(nèi)容:


image.png

實(shí)現(xiàn)四則運(yùn)算計(jì)算器

接下來(lái)我們通過(guò)今天看到的Gooey庫(kù),實(shí)現(xiàn)一個(gè)四則運(yùn)算計(jì)算器。首先上代碼。

@Gooey(encodings='utf-8', program_name='菜鳥小白的計(jì)算器', program_description='四則計(jì)算器', language='chinese')
def test():
    parser = gooey.GooeyParser(description='GUI')  # 配置名稱
    # parser.add_argument('選擇本地文件夾', widget='DirChooser')  # 文件夾選擇框
    parser.add_argument('數(shù)字1', widget='TextField')  # 文本輸入框
    parser.add_argument('數(shù)字2', widget='TextField')  # 文本輸入框
    parser.add_argument('運(yùn)算法則', help='僅支持+-*/四則運(yùn)算', widget='TextField')  # 文本輸入框
    args = parser.parse_args()
    num1 = float(args.數(shù)字1)  # 獲取輸入框內(nèi)容
    num2 = float(args.數(shù)字2)
    sign = args.運(yùn)算法則
    return num1, num2, sign

def main():
    num1, num2, sign = test()
    if sign == "+":
        result = num1 + num2
    elif sign == "-":
        result = num1 - num2
    elif sign == "*":
        result = num1 * num2
    elif sign == "/":
        result = num1 / num2
    else:
        result = "請(qǐng)輸入合法四則運(yùn)算符"
    print(result)

首先我們定義出來(lái)界面的名稱等信息

@Gooey(encodings='utf-8', program_name='菜鳥小白的計(jì)算器', program_description='四則計(jì)算器', language='chinese')

然后我們定義了三個(gè)文本輸入框作為計(jì)算器的輸入。

parser.add_argument('數(shù)字1', widget='TextField')  # 文本輸入框
parser.add_argument('數(shù)字2', widget='TextField')  # 文本輸入框
parser.add_argument('運(yùn)算法則', help='僅支持+-*/四則運(yùn)算', widget='TextField')  # 文本輸入框

然后我們需要將用戶輸入的內(nèi)容提取出來(lái)并返回

    args = parser.parse_args()
    num1 = float(args.數(shù)字1)  # 獲取輸入框內(nèi)容
    num2 = float(args.數(shù)字2)
    sign = args.運(yùn)算法則
    return num1, num2, sign

最后我們就是根據(jù)返回的內(nèi)容進(jìn)行計(jì)算,打印最終結(jié)果就好了。


    num1, num2, sign = test()
    if sign == "+":
        result = num1 + num2
    elif sign == "-":
        result = num1 - num2
    elif sign == "*":
        result = num1 * num2
    elif sign == "/":
        result = num1 / num2
    else:
        result = "請(qǐng)輸入合法四則運(yùn)算符"
    print(result)

最后我們來(lái)看個(gè)小視頻,看看最終的實(shí)現(xiàn)效果。

計(jì)算器操作視頻.gif
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容