不管你是待業(yè)還是失業(yè),在這個(gè)被互聯(lián)網(wǎng)圍繞的時(shí)代里,選擇python開(kāi)發(fā)界面,就多了一項技能,還怕找不到工作?,還怕不好找工作?小編就來(lái)告訴你這個(gè)專(zhuān)業(yè)的優(yōu)勢到底體現在哪里:Python 的圖形界面(GUI)編程?,Python又把GUI界面攻下了,這個(gè)界面真漂亮??!,Python的GUI圖形界面工具大全,或許,這是最強大的一款Python GUI工具??。
1.Python 的圖形界面(GUI)編程?
今天的想寫(xiě)的文章來(lái)源一個(gè)題目:Python 的跨平臺圖形界面編程選用哪個(gè)庫為好? - Python 也算是整理修改一下各位答主的回答,同時(shí)希望這篇文章可以幫助到想學(xué)習或者正在學(xué)習Python跨平臺的同學(xué)。在進(jìn)入庫之前了解一下什么是圖形界面(GUI)?GUI 是 Graphical User Interface 的簡(jiǎn)稱(chēng),即圖形用戶(hù)接口,通常人機交互圖形化用戶(hù)界面設計經(jīng)常讀做“goo-ee”,準確來(lái)說(shuō) GUI 就是屏幕產(chǎn)品的視覺(jué)體驗和互動(dòng)操作部分。GUI 是一種結合計算機科學(xué)、美學(xué)、心理學(xué)、行為學(xué),及各商業(yè)領(lǐng)域需求分析的人機系統工程,強調人—機—環(huán)境三者作為一個(gè)系統進(jìn)行總體設計。說(shuō)一下學(xué)習這個(gè)原因:之前也一直想學(xué)習有關(guān)于Python的GUI一直掛在嘴邊,但是沒(méi)有實(shí)際學(xué)習操作。這次剛好要給公司做一個(gè)簡(jiǎn)單的工具,于是需要學(xué)習一遍。PyQt是一個(gè)創(chuàng )建GUI應用程序的工具包。它是Python編程語(yǔ)言和Qt庫的成功融合。Qt庫是目前最強大的庫之一。PyQt是由Phil Thompson 開(kāi)發(fā)。PyQt實(shí)現了一個(gè)Python模塊集。它有超過(guò)300類(lèi),將近6000個(gè)函數和方法。它是一個(gè)多平臺的工具包,可以運行在所有主要操作系統上,包括UNIX,Windows和Mac。 PyQt采用雙許可證,開(kāi)發(fā)人員可以選擇GPL和商業(yè)許可。在此之前,GPL的版本只能用在Unix上,從PyQt的版本4開(kāi)始,GPL許可證可用于所有支持的平臺。官網(wǎng):Qt | Cross-platform software for embedded & desktop開(kāi)發(fā)文檔:Qt - 開(kāi)發(fā)者成品樣例:來(lái)自用戶(hù)@吃桔子的攻城獅學(xué)習地方:1、官方社區:Qt Forum2、官方博客:Qt Blog - For by 、PyQt4 tutorial4、Archi - 博客園5、PyQt - Wiki for 是Python語(yǔ)言的一套優(yōu)秀的GUI圖形庫,允許Python程序員很方便的創(chuàng )建完整的、功能鍵全的GUI用戶(hù)界面。 wxPython是作為優(yōu)秀的跨平臺GUI庫wxWidgets的Python封裝和Python模塊的方式提供給用戶(hù)的。就如同Python和wxWidgets一樣,wxPython也是一款開(kāi)源軟件,并且具有非常優(yōu)秀的跨平臺能力,能夠支持運行在32 /64位windows、絕大多數的Unix或類(lèi)Unix系統、Macintosh OS X下官網(wǎng):wxPython開(kāi)發(fā)文檔:FrontPage - wxPyWiki成品樣例:學(xué)習地方:1、How to Learn wxPython2、WxPython教程3、wxPython的基礎教程Tkinter模塊("Tk 接口")是Python的標準Tk GUI工具包的接口.Tk和Tkinter可以在大多數的Unix平臺下使用,同樣可以應用在Windows和Macintosh系統里.Tk8.0的后續版本可以實(shí)現本地窗口風(fēng)格,并良好地運行在絕大多數平臺中.官網(wǎng):TkInter - Python Wiki開(kāi)發(fā)文檔:FrontPage - Tkinter Wiki成品樣例:學(xué)習地方:1、python GUI編程(Tkinter)2、Tkinter 8.5 reference: a GUI for Python3、Python GUI編程(Tkinter)4、【玩樹(shù)莓】編程篇(五)Python下使用Tkinter 制作圖形界面5、pyhon之Tkinter實(shí)例化學(xué)習6、Tkinter:圖形用戶(hù)界面編程PySide是跨平臺的應用程式框架Qt的Python綁定版本 。在2009年8月,PySide首次發(fā)布。提供和PyQt類(lèi)似的功能,并相容 API。但與 PyQt 不同處為使用LGPL授權。官網(wǎng): 、 PySide - Qt Wiki開(kāi)發(fā)文檔:PySide — PySide 1.2.4 學(xué)習地方:1、GitHub - shuge/Qt-Python-Binding-Examples: Lots of simple and Pythonic PySide demos2、GitHub - PySide/Examples: Python script examples adapted for PySide.3、GitHub - PySide/PySide: This contains the CPython Qt bindings generated using the Shiboken generator.4、Overview — PySide v1.0.7 程序員常用的技術(shù)網(wǎng)站 - 學(xué)習編程 - 知乎專(zhuān)欄如何學(xué)習Python爬蟲(chóng)[入門(mén)篇]? - 學(xué)習編程 - 知乎專(zhuān)欄如何一步一步的學(xué)Java - 學(xué)習編程 - 知乎專(zhuān)欄
2.Python又把GUI界面攻下了,這個(gè)界面真漂亮??!
0.引言學(xué)Python這么久了,一直想做個(gè)界面出來(lái),最近發(fā)現Python有個(gè)內置庫tkinter,利用它可以很輕松做出一些簡(jiǎn)易的UI界面,首先來(lái)看Python官方對Tkinter的說(shuō)明:The tkinter package (“Tk interface”) is the standard Python the Tk GUI toolkit. Both Tk and tkinter are available on most , as well as on Windows systems.從上面描述中我們不難看出,不管你是 Mac OS 系統,還是 Windows 系統,它都可以生成相對應的操作界面,這就是所謂的跨平臺。1.調用關(guān)系說(shuō)明其原理就是我們使用 Python代碼去調用 Tkinter, Tkinter 已經(jīng)封裝了訪(fǎng)問(wèn)TK的接口,這個(gè)接口是一個(gè)圖形庫,支持多跨平臺操作系統,進(jìn)而通過(guò)它,我們就可以調用我們系統本身的GUI接口了。2.環(huán)境操作系統:Windows / Linux / Mac OSPython版本:3.6.63.小試牛刀有了概念并了解原理之后,接下來(lái)就小試牛刀一下~import tkinter # 定義一個(gè)窗體 top = tkinter.Tk() # 將其加入主循環(huán) top.mainloop()運行一下,biu~,三行代碼就把一個(gè)窗口彈出來(lái)了,有沒(méi)有很神奇~4.中試牛刀接下來(lái)我們要來(lái)點(diǎn)復雜的:import tkinter as tk import tkinter. as mbox # 定義MainUI類(lèi)表示應用/窗口,繼承Frame類(lèi) class MainUI(tk.Frame): # 構造函數,master為窗口的父控件 def __init__(self, master = None): # 初始化的Frame部分 tk.Frame.__init__(self, master) # 顯示窗口,并使用grid布局 self.grid() # 創(chuàng )建控件 self.() # 創(chuàng )建控件 def (self): # 創(chuàng )建一個(gè)標簽,輸出要顯示的內容 self. = tk.Label(self,text="「人人都是」專(zhuān)注Python領(lǐng)域,做最專(zhuān)業(yè)的Python星球。") # 設定使用grid布局 self..grid() # 創(chuàng )建一個(gè)按鈕,用來(lái)觸發(fā)answer方法 self. = tk.Button(self,text="點(diǎn)一下瞧瞧?",command=self.answer) # 設定使用grid布局 self..grid() def answer(self): # 我們通過(guò) 來(lái)顯示一個(gè)提示框 mbox.showinfo("「人人都是」",''' 這是一個(gè)專(zhuān)注Python的星球,我們提供「從零單排」、「實(shí)戰項目」、「大航?!?、「技術(shù)沙龍」、「技術(shù)分享」、「大廠(chǎng)內推」等系列供你選擇及學(xué)習,當然也會(huì )有周邊技術(shù)沿伸。 本星球會(huì )不定期開(kāi)展各類(lèi)實(shí)戰項目,階段性組織線(xiàn)上技術(shù)沙龍、分享等;對于職業(yè)發(fā)展路線(xiàn)不明確的,我們會(huì )邀請到一些大廠(chǎng)hr及高級開(kāi)發(fā)、經(jīng)理等給大家解惑。 加入我們,和千人一起玩Python,To be a ! ''') # 創(chuàng )建一個(gè)MainUI對象 app = MainUI() # 設置窗口標題 app.master.title('「人人都是」') # 設置窗體大小 app.master.geometry('400x100') # 主循環(huán)開(kāi)始 app.mainloop()在這里:我們導入了 tkinter 的相關(guān)模塊定義了初始化函數,通過(guò) grid() 方法將我們的組件傳給父容器自定義一個(gè)創(chuàng )建組件的方法,我們創(chuàng )建了一個(gè)標簽和一個(gè)按鈕,這個(gè)按鈕被點(diǎn)擊后就會(huì )觸發(fā) answer這個(gè)方法我們通過(guò) 來(lái)顯示一個(gè)提示框實(shí)例化我們的 APP,然后通過(guò)主線(xiàn)程來(lái)監聽(tīng)我們的界面操作運行后如下:5.總結想要做出漂亮的UI界面,還是需要深入地學(xué)習下Tkinter這個(gè)模塊。上文中的我們只用到了框架、按鈕、標簽、文本這四種控件,而在Tkinter中給我們提供了15種控件供大家使用。此外Tkinter控件布局有三種方式:包裝pack()、網(wǎng)格grid()、位置place(),本文中選用了grid,大家也可以逐一嘗試下有什么區別,期待大家的大試牛刀~
3.Python的GUI圖形界面工具大全
總結了一下Python下的圖形界面GUI工具,暫時(shí)能找到的資料就這么多,后續會(huì )補充推薦學(xué)習資料。圖形界面的定義圖形界面 圖形用戶(hù)界面(Graphical User Interface,簡(jiǎn)稱(chēng) GUI,又稱(chēng)圖形用戶(hù)接口)是指采用圖形方式顯示的計算機操作用戶(hù)界面。圖形用戶(hù)界面是一種人與計算機通信的界面顯示格式,允許用戶(hù)使用鼠標等輸入設備操縱屏幕上的圖標或菜單選項,以選擇命令、調用文件、啟動(dòng)程序或執行其它一些日常任務(wù)。 說(shuō)人話(huà)就是你拿鼠標箭頭點(diǎn)來(lái)點(diǎn)去的界面,點(diǎn)開(kāi)計算器圖標就跳出個(gè)計算器等。Python的GUI工具Python作為一個(gè)容易上手,簡(jiǎn)單方便的編程語(yǔ)言,第三方的優(yōu)秀工具數不勝數,在GUI這個(gè)方向同樣是有很多的工具可以使用,比較常用的工具無(wú)非是Tkinter、wxWidgets、Qt、Gtk+、Kivy、FLTK 和 OpenGL這幾個(gè),但是除了這幾個(gè)之外還有不少的工具。接下來(lái)我會(huì )按照常用工具,跨瀏覽器工具,跨平臺工具,特定平臺工具和GUI設計工具進(jìn)行分類(lèi),進(jìn)行一個(gè)全面的介紹,這篇文章主要參考維基百科和各個(gè)平臺的相關(guān)介紹。python入門(mén)可以試試以下鏈接:最常用的GUI工具Tkinter主頁(yè)鏈接: Python 的標準 Tk GUI 工具包的接口,可以在大多數的 Unix 平臺下使用, 同樣可以應用在 Windows 和 Mac 系統里。Tk8.0 的后續版本可以實(shí)現本地窗口風(fēng)格,并良好地運行在絕大多數平臺中。優(yōu)點(diǎn):是python的內置庫,無(wú)需額外下載,不存在兼容問(wèn)題,且又非常詳細的說(shuō)明文檔。缺點(diǎn):實(shí)現效果較為普通wxPython主頁(yè)鏈接: Dunn。使用wxPython,開(kāi)發(fā)者可以在Windows、Mac和多種Unix系統上開(kāi)發(fā)應用程序。優(yōu)點(diǎn):是一個(gè)免費的,可移植的GUI類(lèi)庫,用C++編寫(xiě),可在Windows,Mac OS X,GTK,X11等許多平臺上使用??捎糜诙喾N語(yǔ)言,包括Python,Perl,Ruby等。缺點(diǎn):設計的界面美觀(guān)程度和靈活性較為普通PyQT主頁(yè)鏈接: Computing開(kāi)發(fā),是最強大的GUI庫之一。 PyQt提供了一個(gè)設計良好的窗口控件集合,每一個(gè)PyQt控件都對應一個(gè)Qt控件,因此PyQt的API接口與Qt的API接口很接近,但PyQt不再使用QMake系統和Q_OBJECT宏。優(yōu)點(diǎn):功能非常強大,可以用PyQt5開(kāi)很漂亮的界面;另外它支持可視化界面設計,對新手非常友好。什么意思呢,就是你可以通過(guò)拖動(dòng)一些模塊就可以完成一些代碼才能完成的工作,就跟C++的QT是一樣的。缺點(diǎn):學(xué)習起來(lái)有一定難度。PyGtk主頁(yè)鏈接: 是一個(gè)開(kāi)源的 Python 框架,用于快速開(kāi)發(fā)應用,實(shí)現各種當前流行的用戶(hù)界面,比如多點(diǎn)觸摸等等。 Kivy 可以運行于 Windows, Linux, MacOS, Android, iOS 等當前絕大部分主流桌面/移動(dòng)端操作系統。 Kivy 基于 Python,界面文件和程序文件相互分離的設計思路,設計簡(jiǎn)潔優(yōu)雅,語(yǔ)法易學(xué),適合新人入門(mén)。缺點(diǎn):缺點(diǎn)只有一個(gè)中文文檔還是特別全面,大多數教程還是英文版本。推薦學(xué)習資料:Kivy中文教程Github Kivy項目FLTK主頁(yè)鏈接: GUI工具。缺點(diǎn):中文資料極為罕見(jiàn)。OpenGL主頁(yè)鏈接: 是 Open Graphics Library 的簡(jiǎn)寫(xiě),意為“開(kāi)放式圖形庫”,是用于渲染 2D、3D 矢量圖形的跨語(yǔ)言、跨平臺的應用程序編程接口(API)。OpenGL 不是一個(gè)獨立的平臺,因此,它需要借助于一種編程語(yǔ)言才能被使用。C / C++ / python / java 都可以很好支持 OpengGL。優(yōu)點(diǎn):功能極為強大,幾乎可以做出任何2D,3D圖形。缺點(diǎn):學(xué)習難度較高,適合具有剛需的同學(xué)DearPyGui主頁(yè)鏈接: PyGame主頁(yè)鏈接:
4.或許,這是最強大的一款Python GUI工具
Python作為一門(mén)腳本語(yǔ)言,現在更多的應用場(chǎng)景是在數據分析、機器學(xué)習、后端開(kāi)發(fā)方面,在前端和UI方面的應用相對于相對較少。但是,有時(shí)為了更加容易的理解、修改或者共享工程,往往需要一個(gè)用戶(hù)界面去控制后端邏輯。其實(shí),在Python中不乏*的UI構建工具包,例如,Tkinter,PyQT / PySide,wxPython,Kivy,。這些工具包都很強大,但是,也非常繁瑣。開(kāi)發(fā)一個(gè)框架要付出的精力和代碼量幾乎和核心邏輯相差無(wú)幾,這與Python崇尚的簡(jiǎn)單是相悖的。而本文要給大家介紹一款近期在GitHub剛開(kāi)源不久的一個(gè)UI工具包,它在UI構建方面不僅功能豐富,而且非常易于使用,它就是DearPyGui。DearPyGui是一個(gè)易于使用且功能強大的Python GUI框架,它提供了DearImGui的包裝。它與其他Python GUI框架從根本上存在不同,在后臺DearPyGui使用即時(shí)模式范式,這樣能夠實(shí)現更加靈活的動(dòng)態(tài)界面。此外,DearPyGui不使用本機窗口小部件,而是使用計算機的GPU繪制窗口小部件,它支持如下平臺:Windows 提供與DearImGui相同的方式為游戲開(kāi)發(fā)人員提供了一種創(chuàng )建工具的簡(jiǎn)單方法,DearPyGui提供了一種簡(jiǎn)單的方法為Python開(kāi)發(fā)人員創(chuàng )建快速而強大的GUI。安裝使用DearPyGui需要保障你的Python版本在3.8以上,然后執行下方命令可以安裝DearPyGui:pip install dearpygui or pip3 install dearpygui 使用DearPyGui使用非常簡(jiǎn)單,它不需要你像使用其他Python GUI工具那樣,需要長(cháng)時(shí)間的學(xué)習、閱讀官方文檔,你只需要一些簡(jiǎn)單的命令就可以在UI界面上創(chuàng )建文本、按鈕、畫(huà)布、表格、輸入框等組件。先來(lái)看一個(gè)小例子,from dearpygui.dearpygui import * add_text("Hello world") add_button("Save", callback="save_callback") add_input_text("string") add_slider_float("float") def save_callback(sender, data): print("Save Clicked") start_dearpygui() 結果:從上述代碼可以看出,只需要使用一些簡(jiǎn)單的界面就可以添加你想要的組件,沒(méi)有復雜的參數配置,也沒(méi)有讓人不易理解的代碼邏輯。圖表其實(shí),我認為DearPyGui最值得推薦給大家的就是它支持強大的繪制圖表接口。繪圖是使用Python過(guò)程中經(jīng)常會(huì )用到的一種場(chǎng)景,但是,目前繪圖工具在交互以及與UI的結合方面都不太友好。而DearPyGui把強大的繪圖和靈活的GUI框架融合在一起,你只需要短暫的代碼,就可以在GUI上繪制一種美觀(guān)、可交互的圖像:主題主題和樣式是DearPyGui的另一個(gè)亮點(diǎn)。當前有10種內置主題,后續版本還會(huì )加入更多主題。此外,還有一個(gè)用于創(chuàng )建您自己的主題的API。畫(huà)布DearPyGui包含一個(gè)繪圖API,可以創(chuàng )建自定義的繪圖、情節,甚至2D游戲。布局布局是我認為DearPyGui相對于其他Python GUI工具*的亮點(diǎn)之一。我在使用Tkinter,PyQT / PySide,wxPython,Kivy,等工具的時(shí)候,最令我頭疼的就是布局,需要耗費大量的時(shí)間和精力去排出合適的布局。DearPyGui中的布局系統非常簡(jiǎn)單,添加小部件將會(huì )按添加順序垂直、對齊放置。另外,也可以使用add_same_line將小部件放置在同一行上??梢允褂胊dd_group將小部件分組在一起,并為更復雜的布局創(chuàng )建層次結構。from dearpygui.dearpygui import * add_button("Button1") add_button("Button2") add_same_line() add_button("Button3") add_button("Button4") add_button("Button5") add_same_line() add_group("Group1") add_button("Button6") add_button("Button7") end_group() start_dearpygui()與其他框架集成DearPyGui這一點(diǎn)可謂是非常良心,如果你對這款框架現有的功能還不滿(mǎn)足。那么,它集成了其他Python GUI框架,你可以把它與其他框架結合在一起使用,例如,from dearpygui.dearpygui import * from tkinter import Tk, Label, Button # tkinter root = Tk() root.title("A simple GUI") root.button = Button(root, text="Press me") root.button.pack() # DearPyGui add_slider_float("Slider") add_button("Get Value", callback="button_callback") setup_dearpygui() whileTrue: render_dearpygui_frame() root.update() cleanup_dearpygui() 在這個(gè)示例中,就把DearPyGui與tkinter結合在一起進(jìn)行GUI開(kāi)發(fā)??偨YDearPyGui是一款簡(jiǎn)單、開(kāi)放、靈活的Python GUI框架,無(wú)論你是專(zhuān)業(yè)的開(kāi)發(fā)人員,或者是滿(mǎn)足日常工作的輕度使用用戶(hù),DearPyGui都可以讓你圍繞它開(kāi)發(fā)并構建一款簡(jiǎn)單、提升效率的系統。目前這款框架剛開(kāi)源不久,但是,我個(gè)人認為非常值得嘗試一下這款框架。
就拿大數據說(shuō)話(huà),優(yōu)勢一目了然,從事IT行業(yè),打開(kāi)IT行業(yè)的新大門(mén),找到適合自己的培訓機構,進(jìn)行專(zhuān)業(yè)和系統的學(xué)習。