1. 一個(gè)非常簡(jiǎn)單好用的 Python 圖形界面庫(kù)

        共 1972字,需瀏覽 4分鐘

         ·

        2020-12-18 17:58

        前一陣,我在為朋友編寫(xiě)一個(gè)源代碼監(jiān)控程序的時(shí)候,發(fā)現(xiàn)了一個(gè) Python 領(lǐng)域非常簡(jiǎn)單好用的圖形界面庫(kù)。

        說(shuō)起圖形界面庫(kù),你可能會(huì)想到 TkInter、PyQt、PyGUI 等流行的圖形界面庫(kù),我也曾經(jīng)嘗試使用,一個(gè)很直觀的感受就是,這太難用了。就去網(wǎng)上搜搜,看看有沒(méi)有一些 demo,拿來(lái)改改,結(jié)果很少有,當(dāng)時(shí)我就放棄了這些圖形庫(kù)的學(xué)習(xí),轉(zhuǎn)而使用了 vue+flask 的形式以瀏覽器網(wǎng)頁(yè)作為程序界面,因?yàn)槲視?huì)這個(gè),即使實(shí)現(xiàn)起來(lái)稍微麻煩,但是也快。

        那有朋友可能問(wèn)了:一定要學(xué)習(xí)圖形界面嗎?

        其實(shí)不一定,如果你寫(xiě)的程序都是自己用,或者配合其他程序員使用,那么直接命令行調(diào)用即可,完全不用學(xué)習(xí)圖形界面?那什么時(shí)候要學(xué)呢?如果你要做游戲,或者你要為他人(非技術(shù)人員)編寫(xiě)軟件工具,那么你就需要學(xué)習(xí)圖形界面了。我是后者,偶爾受邀幫別人寫(xiě)點(diǎn)小工具,因此有個(gè)圖形界面體驗(yàn)會(huì)好很多。

        今天要說(shuō)的這個(gè)庫(kù)就是 PySimpleGUI,在 GitHub 倉(cāng)庫(kù)[1]有 5.1K 個(gè) star,20 天前還有人提交代碼,可以說(shuō)非?;馃崃?。

        我看了官方文檔,找了個(gè) demo,花了 2 個(gè)小時(shí)的時(shí)間,寫(xiě)了 56 行代碼,就搞定了一個(gè)具有圖形界面的監(jiān)控工具,如下:

        要說(shuō) PysimpleGUI 最吸引我的地方,在于它有 200 多個(gè)示例程序,幾乎覆蓋了日常的開(kāi)發(fā)需求,拿來(lái)稍作修改就可以用,著實(shí)方便。

        PysimpleGUI 內(nèi)部封裝了 tkinter,Qt(pyside2),wxPython和 Remi,Remi 用于瀏覽器支持,因此你很容易將你的界面搬到瀏覽器中而無(wú)需修改代碼。如下圖:

        還有最吸引我的一點(diǎn),就是足夠簡(jiǎn)單,在幾分鐘內(nèi)用幾行代碼就可以構(gòu)建自定義 GUI 布局,對(duì)于初學(xué)者來(lái)說(shuō)足夠容易,對(duì)于高級(jí)用戶(hù)來(lái)說(shuō)足夠強(qiáng)大。廣泛的文檔。有 100 多種內(nèi)置顏色主題,200 多個(gè)示例程序[2],還經(jīng)常更新。如果你玩 Raspberry Pi,也可以用這個(gè)庫(kù)寫(xiě)界面,你說(shuō)好用不好用。

        通常一個(gè) PySimpleGUI 程序包含 5 個(gè)部分,見(jiàn)下面代碼的注釋?zhuān)?/p>

        import?PySimpleGUI?as?sg????????????????????????#?Part?1?-?導(dǎo)入庫(kù)

        #?定義窗口的內(nèi)容
        layout?=?[??[sg.Text("What's?your?name?")],?????#?Part?2?-?排版
        ????????????[sg.Input()],
        ????????????[sg.Button('Ok')]?]

        #?創(chuàng)建窗口
        window?=?sg.Window('Window?Title',?layout)??????#?Part?3?-?窗口定義
        ????????????????????????????????????????????????
        #?Display?and?interact?with?the?Window
        event,?values?=?window.read()???????????????????#?Part?4?-?開(kāi)啟主循環(huán)?window.read()

        #?Do?something?with?the?information?gathered
        print('Hello',?values[0],?"!?Thanks?for?trying?PySimpleGUI")

        #?Finish?up?by?removing?from?the?screen
        window.close()??#?Part?5?-?關(guān)閉窗口

        執(zhí)行上述代碼,會(huì)得到一個(gè)如下圖所示的程序:

        這僅僅是一個(gè)類(lèi)似 hello world 的程序,PySimpleGUI 還可以做出更加強(qiáng)大的圖形界面和游戲界面,比如:

        最后,再告訴大家一條小技巧,如果看到好的圖形界面程序,包括網(wǎng)站,記得收藏相關(guān)的代碼,下次可以直接拿來(lái)用,提升開(kāi)發(fā)效率。本文涉及的開(kāi)源軟件監(jiān)控工具源代碼,如果感興趣,可以點(diǎn)擊「閱讀原文」獲取下載連接。

        最后,學(xué)習(xí)一個(gè)新技術(shù)要看重其遷移能力,學(xué)習(xí)一次,可以使用無(wú)數(shù)次,那么該技術(shù)就值得學(xué)。原創(chuàng)不易,如果覺(jué)得文章對(duì)你有幫助,還請(qǐng)關(guān)注、在看支持。

        參考資料

        [1]

        GitHub 倉(cāng)庫(kù): https://github.com/PySimpleGUI/PySimpleGUI

        [2]

        200 多個(gè)示例程序: https://github.com/PySimpleGUI/PySimpleGUI/tree/master/DemoPrograms


        瀏覽 144
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 亚洲真人av | 天天天日日日 | 欧美丰满熟妇BBBBBB禁忌 | 亚洲无吗在线 | 亚洲特级黄色视频 |