1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        分享七個(gè)Python必備GUI庫(kù),代碼實(shí)踐

        共 5130字,需瀏覽 11分鐘

         ·

        2021-10-09 18:34

        GUI(圖形用戶界面),顧名思義就是用圖形的方式,來(lái)顯示計(jì)算機(jī)操作的界面,更加方便且直觀。


        與之相對(duì)應(yīng)的則是CUI(命令行用戶交互),就是常見(jiàn)的Dos命令行操作,需要記憶一些常用的命令,對(duì)于普通人而言,操作起來(lái)學(xué)習(xí)難度還是蠻高的。


        一個(gè)好看又好用的GUI,可以大大提高大家的使用體驗(yàn),提高效率。


        比如你想開(kāi)發(fā)一個(gè)計(jì)算器,如果只是一個(gè)程序輸入,輸出窗口的話,是沒(méi)有用戶體驗(yàn)的。


        所以開(kāi)發(fā)一個(gè)圖像化的小窗口,就變得很有必要。


        今天,小F就給大家介紹七個(gè)Python必備的GUI庫(kù),每一個(gè)都值得學(xué)習(xí)。



        01.?PyQt5


        PyQt5由Riverbank Computing開(kāi)發(fā)?;赒t框架構(gòu)建,是一個(gè)跨平臺(tái)框架,可以給各種平臺(tái)創(chuàng)建應(yīng)用程序,包括:Unix、Windows、Mac OS。


        PyQt將Qt和Python結(jié)合在一起。它不只是一個(gè)GUI工具包。還包括了線程,Unicode,正則表達(dá)式,SQL數(shù)據(jù)庫(kù),SVG,OpenGL,XML和功能完善的Web瀏覽器,以及許多豐富的GUI小部件集合。


        使用pip安裝一下。


        #?安裝PyQt5
        pip?install?-i?https://pypi.tuna.tsinghua.edu.cn/simple?PyQt5


        安裝成功后,來(lái)個(gè)Hello Word簡(jiǎn)單示例。


        import?sys
        from?PyQt5.QtWidgets?import?QApplication,?QWidget,?QLabel,?QVBoxLayout

        #?建立application對(duì)象
        app?=?QApplication(sys.argv)
        #?建立窗體對(duì)象
        w?=?QWidget()
        #?設(shè)置窗體大小
        w.resize(500,?500)

        #?設(shè)置樣式
        w.layout?=?QVBoxLayout()
        w.label?=?QLabel("Hello?World!")
        w.label.setStyleSheet("font-size:25px;margin-left:155px;")
        w.setWindowTitle("PyQt5?窗口")
        w.layout.addWidget(w.label)
        w.setLayout(w.layout)

        #?顯示窗體
        w.show()
        #?運(yùn)行程序
        sys.exit(app.exec_())


        結(jié)果如下。



        文檔地址:

        https://riverbankcomputing.com/software/pyqt/intro

        教程鏈接:

        https://www.guru99.com/pyqt-tutorial.html



        02. Tkinter


        Tkinter是Python中最受歡迎的GUI庫(kù)之一。由于它簡(jiǎn)單易學(xué)的語(yǔ)法,成為GUI開(kāi)發(fā)初學(xué)者的首選之一。


        Tkinter提供了各種小部件,例如標(biāo)簽,按鈕,文本字段,復(fù)選框和滾動(dòng)按鈕等。


        支持Grid(網(wǎng)格)布局,由于我們的程序大多數(shù)都是矩形顯示,這樣即使是復(fù)雜的設(shè)計(jì),開(kāi)發(fā)起來(lái)也變得簡(jiǎn)單些。?


        #?安裝tkinter
        pip?install?-i?https://pypi.tuna.tsinghua.edu.cn/simple?tkinter


        下面使用Tkinter設(shè)計(jì)一個(gè)BMI計(jì)算器。


        以重量和高度作為輸入,并在彈出框中返回BMI系數(shù)作為輸出。


        from?tkinter?import?*
        from?tkinter?import?messagebox

        def?get_height():
        ????#?獲取身高數(shù)據(jù)(cm)
        ????height?=?float(ENTRY2.get())
        ????return?height

        def?get_weight():
        ????#?獲取體重?cái)?shù)據(jù)(kg)
        ????weight?=?float(ENTRY1.get())
        ????return?weight

        def?calculate_bmi():
        ????#?計(jì)算BMI系數(shù)
        ????try:
        ????????height?=?get_height()
        ????????weight?=?get_weight()
        ????????height?=?height?/?100.0
        ????????bmi?=?weight?/?(height?**?2)
        ????except?ZeroDivisionError:
        ????????messagebox.showinfo("提示",?"請(qǐng)輸入有效的身高數(shù)據(jù)!!")
        ????except?ValueError:
        ????????messagebox.showinfo("提示",?"請(qǐng)輸入有效的數(shù)據(jù)!")
        ????else:
        ????????messagebox.showinfo("你的BMI系數(shù)是:?",?bmi)

        if?__name__?==?'__main__':
        ????#?實(shí)例化object,建立窗口TOP
        ????TOP?=?Tk()
        ????TOP.bind("",?calculate_bmi)
        ????#?設(shè)定窗口的大小(長(zhǎng)?*?寬)
        ????TOP.geometry("400x400")
        ????#?窗口背景顏色
        ????TOP.configure(background="#8c52ff")
        ????#?窗口標(biāo)題
        ????TOP.title("BMI?計(jì)算器")
        ????TOP.resizable(width=False,?height=False)
        ????LABLE?=?Label(TOP,?bg="#8c52ff",?fg="#ffffff",?text="歡迎使用?BMI?計(jì)算器",?font=("Helvetica",?15,?"bold"),?pady=10)
        ????LABLE.place(x=55,?y=0)
        ????LABLE1?=?Label(TOP,?bg="#ffffff",?text="輸入體重(單位:kg):",?bd=6,
        ???????????????????font=("Helvetica",?10,?"bold"),?pady=5)
        ????LABLE1.place(x=55,?y=60)
        ????ENTRY1?=?Entry(TOP,?bd=8,?width=10,?font="Roboto?11")
        ????ENTRY1.place(x=240,?y=60)
        ????LABLE2?=?Label(TOP,?bg="#ffffff",?text="輸入身高(單位:cm):",?bd=6,
        ???????????????????font=("Helvetica",?10,?"bold"),?pady=5)
        ????LABLE2.place(x=55,?y=121)
        ????ENTRY2?=?Entry(TOP,?bd=8,?width=10,?font="Roboto?11")
        ????ENTRY2.place(x=240,?y=121)
        ????BUTTON?=?Button(bg="#000000",?fg='#ffffff',?bd=12,?text="BMI",?padx=33,?pady=10,?command=calculate_bmi,
        ????????????????????font=("Helvetica",?20,?"bold"))
        ????BUTTON.grid(row=5,?column=0,?sticky=W)
        ????BUTTON.place(x=115,?y=250)
        ????TOP.mainloop()


        界面如下。



        當(dāng)沒(méi)有數(shù)據(jù)時(shí),點(diǎn)擊BMI按鈕,會(huì)有與之對(duì)應(yīng)的提示。


        下面我們使用正確的數(shù)據(jù),來(lái)看看結(jié)果。



        使用起來(lái)感覺(jué)還是不錯(cuò)的。



        03. Kivy


        Kivy是另一個(gè)開(kāi)源的Python庫(kù),最大的優(yōu)點(diǎn)就是可以快速地編寫(xiě)移動(dòng)應(yīng)用程序(手機(jī))。


        Kivy可以在不同的平臺(tái)上運(yùn)行,包括Windows、Mac OS、Linux、Android、iOS和樹(shù)莓派。


        此外也是免費(fèi)使用的,獲得了MIT許可。


        #?安裝kivy
        pip?install?-i?https://pypi.tuna.tsinghua.edu.cn/simple?kivy


        一個(gè)基于Kivy的Hello World窗口。


        from?kivy.app?import?App
        from?kivy.uix.button?import?Button

        class?TestApp(App):
        ????def?build(self):
        ????????return?Button(text="?Hello?Kivy?World?")

        TestApp().run()


        結(jié)果如下。




        04. wxPython


        wxPython是一個(gè)跨平臺(tái)GUI的Python庫(kù),可輕松創(chuàng)建功能強(qiáng)大穩(wěn)定的GUI,畢竟是用C++編寫(xiě)的~


        目前,支持Windows,Mac OS X,macOS和Linux。


        使用wxPython創(chuàng)建的應(yīng)用程序(GUI)在所有平臺(tái)上都具有原生外觀。


        #?安裝wxPython
        pip?install?-i?https://pypi.tuna.tsinghua.edu.cn/simple?wxPython


        下面使用wxPython創(chuàng)建一個(gè)基本的GUI示例。


        import?wx

        myapp?=?wx.App()
        init_frame?=?wx.Frame(parent=None,?title='WxPython?窗口')

        init_frame.Show()
        myapp.MainLoop()


        結(jié)果如下。



        文檔鏈接:https://www.wxpython.org/



        05. PySimpleGUI


        PySimpleGUI也是基于Python的GUI框架。可以輕松制作自定義的GUI。


        采用了四種最流行的GUI框架QT、Tkinter、WxPython和Remi,能夠?qū)崿F(xiàn)大多數(shù)樣例代碼,降低了學(xué)習(xí)難度。


        Remi將應(yīng)用程序的界面轉(zhuǎn)換為HTML,以便在Web瀏覽器中呈現(xiàn)。


        #?安裝PySimpleGUI
        pip?install?-i?https://pypi.tuna.tsinghua.edu.cn/simple?PySimpleGUI


        下面是一個(gè)簡(jiǎn)單的案例。


        import?PySimpleGUI?as?sg

        layout?=?[[sg.Text("測(cè)試?PySimpleGUI")],?[sg.Button("OK")]]
        window?=?sg.Window("樣例",?layout)
        while?True:
        ????event,?values?=?window.read()
        ????if?event?==?"OK"?or?event?==?sg.WIN_CLOSED:
        ????????break
        window.close()


        結(jié)果如下。



        點(diǎn)擊OK按鈕,窗口消失。



        06. PyGUI


        PyGUI是一個(gè)以簡(jiǎn)單API而聞名的GUI框架,減少Python應(yīng)用與平臺(tái)底層GUI之間的代碼量。


        輕量級(jí)的API,可以讓你的應(yīng)用程序運(yùn)行起來(lái)更流暢,更快速。


        同時(shí)還開(kāi)源代碼,跨平臺(tái)項(xiàng)目。目前可在基于Unix的系統(tǒng),Windows和Mac OS上運(yùn)行。


        Python2和Python3,都是可以支持的。

        文檔地址:

        https://www.cosc.canterbury.ac.nz/greg.ewing/python_gui/

        教程鏈接:

        https://realpython.com/pysimplegui-python/



        07. Pyforms


        Pyforms是用于開(kāi)發(fā)GUI應(yīng)用程序的一個(gè)跨平臺(tái)框架。



        Pyforms是一個(gè)Python2.7/3.x跨環(huán)境圖形應(yīng)用開(kāi)發(fā)框架,模塊化和代碼復(fù)用可以節(jié)省大量工作。


        允許應(yīng)用程序在桌面,Web和終端上運(yùn)行,無(wú)需修改代碼。


        #?安裝PyFroms
        pip?install?-i?https://pypi.tuna.tsinghua.edu.cn/simple?PyFroms


        文檔地址:https://pyforms.readthedocs.io/en/v4/


        加入知識(shí)星球【我們談?wù)摂?shù)據(jù)科學(xué)】

        500+小伙伴一起學(xué)習(xí)!






        Python數(shù)據(jù)星球迎來(lái)500位小伙伴,發(fā)優(yōu)惠券啦!
        祝大家國(guó)慶假期快樂(lè)



        ·?推薦閱讀?·

        如何在Excel中調(diào)用Python腳本,實(shí)現(xiàn)數(shù)據(jù)自動(dòng)化處理

        用Python快速制作海報(bào)級(jí)地圖

        scikit-learn 1.0 版本重要新特性一覽



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

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            国产精品午夜福利 | 免费一级操逼片 | 欧美精品一区二区三区中文字幕 | 扒开你的腿做爽爽初视频 | 久久成人色 | 久久久久夜色 | 国产麻豆hdfreesexvideo模特 | 天堂男人网 | 少妇愉情理伦片法国4级 | 校花洗澡被农民工侵犯 |