Python做爲一門腳本語言,如今更多的應用場景是在數據分析、機器學習、後端開發方面,在前端和UI方面的應用相對於JavaScript相對較少。前端
可是,有時爲了更加容易的理解、修改或者共享工程,每每須要一個用戶界面去控制後端邏輯。web
其實,在Python中不乏知名的UI構建工具包,例如,Tkinter,PyQT / PySide,wxPython,Kivy,PySimpleGui。這些工具包都很強大,可是,也很是繁瑣。編程
開發一個框架要付出的精力和代碼量幾乎和核心邏輯相差無幾,這與Python崇尚的簡單是相悖的。而本文要給你們介紹一款近期在GitHub剛開源不久的一個UI工具包,它在UI構建方面不只功能豐富,並且很是易於使用,它就是DearPyGui。後端
DearPyGui是一個易於使用且功能強大的Python GUI框架,它提供了DearImGui的包裝。微信
它與其餘Python GUI框架從根本上存在不一樣,在後臺DearPyGui使用即時模式範式,這樣可以實現更加靈活的動態界面。此外,DearPyGui不使用本機窗口小部件,而是使用計算機的GPU繪製窗口小部件,它支持以下平臺:框架
-
Windows 10 -
macOs -
Linux
DearPyGui提供與DearImGui相同的方式爲遊戲開發人員提供了一種建立工具的簡單方法,DearPyGui提供了一種簡單的方法爲Python開發人員建立快速而強大的GUI。機器學習
安裝編輯器
使用DearPyGui須要保障你的Python版本在3.8以上,而後執行下方命令能夠安裝DearPyGui:ide
pip install dearpygui
or
pip3 install dearpygui
使用工具
DearPyGui使用很是簡單,它不須要你像使用其餘Python GUI工具那樣,須要長時間的學習、閱讀官方文檔,你只須要一些簡單的命令就能夠在UI界面上建立文本、按鈕、畫布、表格、輸入框等組件。
先來看一個小例子,
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()
結果:
從上述代碼能夠看出,只須要使用一些簡單的界面就能夠添加你想要的組件,沒有複雜的參數配置,也沒有讓人不易理解的代碼邏輯。
圖表
其實,我認爲DearPyGui最值得推薦給你們的就是它支持強大的繪製圖表接口。
繪圖是使用Python過程當中常常會用到的一種場景,可是,目前繪圖工具在交互以及與UI的結合方面都不太友好。而DearPyGui把強大的繪圖和靈活的GUI框架融合在一塊兒,你只須要短暫的代碼,就能夠在GUI上繪製一種美觀、可交互的圖像:
主題
主題和樣式是DearPyGui的另外一個亮點。當前有10種內置主題,後續版本還會加入更多主題。此外,還有一個用於建立您本身的主題的API。
畫布
DearPyGui包含一個繪圖API,能夠建立自定義的繪圖、情節,甚至2D遊戲。
佈局
佈局是我認爲DearPyGui相對於其餘Python GUI工具最大的亮點之一。
我在使用Tkinter,PyQT / PySide,wxPython,Kivy,PySimpleGui等工具的時候,最令我頭疼的就是佈局,須要耗費大量的時間和精力去排出合適的佈局。
DearPyGui中的佈局系統很是簡單,添加小部件將會按添加順序垂直、對齊放置。另外,也可使用add_same_line
將小部件放置在同一行上。可使用add_group
將小部件分組在一塊兒,併爲更復雜的佈局建立層次結構。
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這一點可謂是很是良心,若是你對這款框架現有的功能還不知足。那麼,它集成了其餘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()
while True:
render_dearpygui_frame()
root.update()
cleanup_dearpygui()
在這個示例中,就把DearPyGui與tkinter結合在一塊兒進行GUI開發。
總結
DearPyGui是一款簡單、開放、靈活的Python GUI框架,不管你是專業的開發人員,或者是知足平常工做的輕度使用用戶,DearPyGui均可以讓你圍繞它開發並構建一款簡單、提高效率的系統。目前這款框架剛開源不久,可是,我我的認爲很是值得嘗試一下這款框架。
推薦閱讀
從zero到hero,一款Python天然語言處理效率利器!
AI開發效率倍增!讓JupyterLab成爲無所不能的開發神器
我的微信
歡迎各位一塊兒討論、一塊兒學習,共同促進,感興趣的能夠加我我的微信。
本文分享自微信公衆號 - 七步編程(CodeSteps)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。