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